我有一个我要添加对象的数组。我想控制使用数字添加到数组的对象数。
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;
答案 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]);
}