2016-06-08 51 views
1

當我嘗試推送數組上的對象時,它將所有對象複製到上次推送的對象。推送對象時數組重複對象

var seriesArr = []; 
var seriesDemo = {}; 

var seriesFinal = finalArr[0] 

for (var o in finalArr[0]) { 
    seriesDemo.valueField = o; 
    seriesArr.push(seriesDemo); 
} 

OUTPUT:

[{"valueField":"amount[3]"},{"valueField":"amount[3]"},{"valueField":"amount[3]"},{"valueField":"amount[3]"}] 

It should be like: [{"valueField":"amount[0]"},{"valueField":"amount[1]"},{"valueField":"amount[2]"},{"valueField":"amount[3]"}] 
+0

finalArr的值是多少? – Mairaj

+0

忘記'seriesDemo'對象,並且喜歡'seriesArr.push({valueField:o});' – Redu

回答

3

也許你正在尋找呢?

for (var o in finalArr[0]) { 
    var seriesDemo = {}; // (Re-)Initialize here 
    seriesDemo.valueField = o; 
    seriesArr.push(seriesDemo); 
} 

的問題是要更新的全球seriesDemo哈希每次,它是由參考推入seriesArr。因此,seriesArr中的所有條目都保留對最後條目的引用。

+0

感謝它的運作。 –