我有一些问题可以理解如何做到这一点
我创建了一个用于保存对象的变量:
var myobject = new object();
一切都很好;名称是“我的对象”,内容是新对象。
如果我想要10个变量,我需要输入10个变量名。
var myobject1 = new object();
var myobject2 = new object();
var myobject3 = new object();
var myobject4 = new object();
.... and so on
现在;我想用计数器增加变量的名称(不是内容),所以我需要多少次新对象并不重要;名称只会以增量方式改变(我不能为变量重用相同的名称,这是一个很长的故事)。所以结果与上面相同,但没有我实际上写了10次(n次)变量名。
在sh中,我可以引用myobject
作为名称,或$myobject
作为该变量的内容;但JS似乎没有这种方法。
我试图放下逻辑,但我看不出你如何实际增加变量名称:
//global variables
var counter=0;
var tempname;
function makeplentyofobj(){
if (temp name)
tempname= new object(); //this should make myobjectN
else
myobject= new object(); //this makes myobject1
counter ++;
tempname ='myobject'+counter; //this make a name for the next object)
}
当我运行它时,编译器将放入myobject,新对象(计数器变为1,临时名称包含字符串'myobject1')。
如果我调用函数2次,第二次调用counter = 1,tempname将包含字符串'myobject1'。这就是我想用作下一个变量的名称。由于tempname不为空,我在else条件中分支,但tempname的CONTENT将从string更改为object。
相反,我想获得一个新的变量名,它随计数器递增,所以每当我调用var my object = new object();
作为计数器增量时,我得到
myobject1=new object();
myobject2= new object();
....
我如何在JS中获得这个?
编辑:
感谢您的回复;它是重复的;虽然我的问题花了很长时间才通过推理我做了什么,而另一个是一个简单的“我该怎么做”。
我花了很多力气;我想下次我会跳过努力:)
答案 0 :(得分:0)
解决此类问题的常用方法是将对象放入数组中。这简化了存储和检索它们的过程。
var objArray = [];
objArray.push(new object());
objArray.push(new object());
objArray.push(new object());
objArray.push(new object());
或者,您甚至可以将它们放在初始声明中:
var objArray = [new object(), new object(), new object(), new object()];
如果你真的只想要通用对象,它可以像这样简单:
var objArray = [{}, {}, {}, {}, {}];
然后,引用给定元素就像
一样简单var obj = objArray[n];
请记住,数组以0
中的索引objArray[0]
开头。