如何使用增量名称创建变量

时间:2014-08-11 01:30:53

标签: javascript variables

我有一些问题可以理解如何做到这一点

我创建了一个用于保存对象的变量:

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中获得这个?

编辑:

感谢您的回复;它是重复的;虽然我的问题花了很长时间才通过推理我做了什么,而另一个是一个简单的“我该怎么做”。

我花了很多力气;我想下次我会跳过努力:)

1 个答案:

答案 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]开头。