当我处理数据时,我通常需要创建 Arrays
或Objects
循环,比方说“即时”。
例如,我想通过数组键之一重新排列对元素进行分组的数组:我使用的方法之一是循环遍历for in
. 但问题是当我动态定义多个索引时。
for(key in array){
newArray[array[key]['gouping_key']] = array[key];
}
这个例子工作得很好。但是,如果您有多个具有相同 的元素,则grouping_key
此代码将覆盖您之前的元素。
所以,我试试这个:
var i = 0;
for(key in array){
newArray[array[key]['gouping_key']][i] = array[key];
i++
}
但是当我添加第二个索引时,解释器抱怨说newArray[array[key]['gouping_key']]
is undefined
。在前面的示例中似乎没有问题。
这是为什么?
我已经用一个例子做了这个小提琴,以防前面的片段解释不充分和不清楚。在小提琴中,您有三个片段(两个已注释掉)。
第一个是我在尝试类似我之前提到的内容时遇到的错误。第二个是我使用的解决方案。第三个例子是动态创建一个只有一个索引的数组。
总结一下,我想知道为什么,当你添加第二个索引时,你会得到那个错误。
谢谢!