以编程方式将对象分配给数组

时间:2013-12-02 13:55:49

标签: javascript arrays

我有一个我要添加对象的数组。我想控制使用数字添加到数组的对象数。

for (var i = 0; i < numberOfCountries; i++) {
    chartArray[i] = obj[i];
}

我想要得到这个:

    chartArray[0] = obj0;
    chartArray[1] = obj1;
    chartArray[2] = obj2;
    chartArray[3] = obj3;
    chartArray[4] = obj4;
    chartArray[5] = obj5;

5 个答案:

答案 0 :(得分:1)

假设窗口范围内有obj个变量:

for (var i=0; i<numberOfCountries; i++) {
    chartArray[i] = window["obj"+i];
}

答案 1 :(得分:1)

你想要这个吗?

for (var i=0; i<numberOfCountries; i++) {
    chartArray.push(this["obj"+i]);
}

答案 2 :(得分:0)

假设for循环的索引是0:

您有以下代码:

chartArray[0] = obj[0];

在此代码中,您尝试将索引为0的名为“obj”的数组的元素推送到索引0中的chartArray。

要执行您想要的操作,您必须通过向单词“obj”添加序号来解析对象的名称,以便您可以使用eval()。

尝试:

for (var i = 0; i < numberOfCountries; i++) {
   //for debug uncomment nexr line 
   //console.log("name:","obj"+i,"eval:",eval("obj"+i));
   if(typeof eval("obj"+i) !== "undefined") return chartArray.push(eval("obj"+i));
}

如果没有定义名为“obj”+ i的对象,则循环继续到下一个“Countrie”whitout添加到您的数组。

再见。

答案 3 :(得分:0)

我真的觉得你提出错误的问题(见https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)。您引用的对象应该首先位于数组中

答案 4 :(得分:-1)

你可以这样做:

var char = new Array();
for (var i = 0; i < number; i++)
{
    char.push(obj[i]);
}