簡體   English   中英

以編程方式將對象分配給數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM