我有一系列循环,在最后一个循环中创建了一个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
放入函数中来解决问题,从而创建自己的范围。
答案 0 :(得分:0)
我快速查看了你的jsfiddle,所以拿一点我说的话。
在您的示例中,当您循环内部循环时,此行catIndicator[pck[i]]
保持不变,因为在内部循环的每次迭代中i
的值都不会更改,因此您需要压倒那个价值。
如果我正确理解你的问题,你需要使用像catIndicator[pck[i][j][key]]
这样的多维数组。这可能不是正确的顺序,具体取决于您希望如何设置数据对象,但我相信它可以解决问题。
向智者说话,尽量保持你的榜样尽可能小。 SO上的大多数人如果看到这个例子过于复杂而无法快速回答,那么他们就会转向另一个问题。如果您调整示例以便只突出显示问题代码,我相信您会得到更多回复。