当我试图在数组上推送对象时,它将所有对象复制到最后一个推送对象。
var seriesArr = [];
var seriesDemo = {};
var seriesFinal = finalArr[0]
for (var o in finalArr[0]) {
seriesDemo.valueField = o;
seriesArr.push(seriesDemo);
}
输出:
[{"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 :(得分:3)
也许你在找这个?
for (var o in finalArr[0]) {
var seriesDemo = {}; // (Re-)Initialize here
seriesDemo.valueField = o;
seriesArr.push(seriesDemo);
}
问题是您每次都在更新全局seriesDemo
哈希值,并通过引用将其推送到seriesArr
。因此seriesArr
中的所有条目都持有对最后一个条目的引用。