Javascript对象循环只是将最后迭代的元素追加到另一个对象

Javascript object loop is only appending the last iterated element to another object

本文关键字:元素 追加 一个对象 迭代 最后 循环 对象 Javascript      更新时间:2023-09-26

我有一系列循环,在最后的循环中创建一个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 通过将i放入函数中,从而创建自己的作用域来解决问题。

我很快地浏览了一下你的文件,所以请对我说的话持保留态度。

在您的示例中,当您循环内部循环时,catIndicator[pck[i]]这一行保持不变,因为在您的内部循环的每次迭代中,i的值没有改变,因此您重写了该值。

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

明智的做法是,尽量让你的例子尽量小而切中要害。大多数人会转移到另一个问题,如果他们看到的例子太复杂,一个快速的答案。如果您调整您的示例,以便只突出显示问题代码,我相信您将得到更多的响应。