我是新的nodejs,我非常困惑的異步。Node.js控制流程
我與樣本代碼試圖在一個項存儲到陣列for循環:
var item = {};
var array = [];
for (var j = 1; j < 5; j++) {
item.test = j;
array.push(item);
}
我預期的array
的結果是:
[{test: 1}, {test: 2}, {test: 3}, {test: 4}]
但我得到:
[{test: 4}, {test: 4}, {test: 4}, {test: 4}]
如果我只是推j
到array
,沒關係。
var array = [];
for(var j = 1; j < 5; j++) {
array.push(j);
}
結果是:
[1, 2, 3, 4]
我會很感激任何解釋爲什麼會這樣。
因爲你正在修改內部循環中的同一個對象。你想要創建一個'array.push({test:j})'對象'的數組,這樣你就會爲每個鍵有一個新的對象。 –