Javascript对象循环仅将最后一个迭代元素附加到另一个对象

时间:2014-03-19 15:02:23

标签: javascript

我有一系列循环,在最后一个循环中创建了一个javascript对象。对象在每次迭代时都会更改,例如:

// iteration 1: {Belmonte: 0.14625} (index):65
// iteration 2: {Castelo Branco: 0.286} (index):65
// iteration 3: {Belmonte: 0.14625} (index):65
// iteration 4: {Castelo Branco: 0.286}
// ... etc

我想将对象的每个(4)版本附加到另一个对象,但我只能附加最终版本#4:{Castelo Branco: 0.286}。我理解为什么会这样,但找不到解决方案。我创建了一个示例(检查控制台输出):http://jsfiddle.net/LUAj3/

更新

通过将i放入函数中来解决问题,从而创建自己的范围。

1 个答案:

答案 0 :(得分:0)

我快速查看了你的jsfiddle,所以拿一点我说的话。

在您的示例中,当您循环内部循环时,此行catIndicator[pck[i]]保持不变,因为在内部循环的每次迭代中i的值都不会更改,因此您需要压倒那个价值。

如果我正确理解你的问题,你需要使用像catIndicator[pck[i][j][key]]这样的多维数组。这可能不是正确的顺序,具体取决于您希望如何设置数据对象,但我相信它可以解决问题。

向智者说话,尽量保持你的榜样尽可能小。 SO上的大多数人如果看到这个例子过于复杂而无法快速回答,那么他们就会转向另一个问题。如果您调整示例以便只突出显示问题代码,我相信您会得到更多回复。