如何在循环中逐渐更改变量名

3
我试图制作一个循环,根据变量objNumber来创建相应数量的对象,并用不同的变量名称命名,代码如下:

for (var i = 1; i <= objNumber; i++){
    var myElement = new Element('div', {id: 'slot'+i, class: 'slot'});
    var myObject+i = new myClass
}

我希望这样做可以跟踪所有对象的名称,并且可以轻松地引用它们。
每个myObject都会创建另一个“子”对象。如果我以相同的数字保留所有对象,那么我就可以跟踪所有对象。
这是最好的方法吗?还是不可能的?

1
你可能应该使用一个数组,但是作为参考,你可以在javascript中使用变量变量,像这样: var i = 'foo'; window[i+"bar"] = i; foobar == "foo" - circusbred
3个回答

4

只需使用数组:

var myObjects = [];
for (var i = 1; i <= objNumber; i++){

        var myElement = new Element('div', {id: 'slot'+i, class: 'slot'});
        var myObjects[i] = new myClass
 }

0
最好的方法是使用数组:
var myArray = new Array();
for (var i = 0; i < objNumber; i++){

        var myElement = new Element('div', {id: 'slot'+i, class: 'slot'});
        myArray.push(new myClass());

 }

或者你可以使用以下方法:

 var myCollectionObj = {};
 for (var i = 1; i <= objNumber; i++){

        var myElement = new Element('div', {id: 'slot'+i, class: 'slot'});
        myCollectionObj["myObject"+i] = new myClass();

 }

0
你可以使用 eval 语句来实现这个功能,但更好的方法是使用关联数组,其中键是变量名。这样做可以轻松地遍历你创建的对象,并且可以创建更易读的代码。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接