当我尝试将对象推入数组时,将所有对象复制到最后一个推入的对象。

 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]"}]

最佳答案

也许您在寻找这个?

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


问题在于您每次都在更新全局seriesDemo哈希,并通过引用将其推送到seriesArr中。因此,seriesArr中的所有条目都保留了对最后一个条目的引用。

10-04 17:16