[英]programaticly assign objects to an array
我有一個要向其中添加對象的數組。 我想控制使用數字添加到數組中的對象的數量。
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;
假設obj
變量在窗口范圍內可用:
for (var i=0; i<numberOfCountries; i++) {
chartArray[i] = window["obj"+i];
}
可能你想要這個嗎?
for (var i=0; i<numberOfCountries; i++) {
chartArray.push(this["obj"+i]);
}
假設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”,將其添加到數組中。
再見
我真的感覺到您在問一個錯誤的問題(請參閱https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem )。 您引用的對象應該首先放在數組中
你可以這樣做:
var char = new Array();
for (var i = 0; i < number; i++)
{
char.push(obj[i]);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.