0
我找到了_.groupBy
,它通过设置你想要分组的属性来处理对象,但没有找到一个用于分组数组的数组。下划线:具有共同第二索引值的组数组?
arrays = [[0,'A','01010'],[4,'CD','1111'],[9,'FF','01010'],[6,'AX','01010']]
.groupBy
什么也没有。我想按每个数组中的第三个值进行分组。
什么,如果我想通过组第一和第三数组值?
我找到了_.groupBy
,它通过设置你想要分组的属性来处理对象,但没有找到一个用于分组数组的数组。下划线:具有共同第二索引值的组数组?
arrays = [[0,'A','01010'],[4,'CD','1111'],[9,'FF','01010'],[6,'AX','01010']]
.groupBy
什么也没有。我想按每个数组中的第三个值进行分组。
什么,如果我想通过组第一和第三数组值?
_.groupBy()作用于数组或对象,并允许您指定一个迭代器功能。
所以这将GROUP BY每个阵列中的第3个值:
_.groupBy(arrays, function(num){return num[2]});
你也可以使用第一和第三值。你究竟是怎么做的,取决于你想如何结合这两个值。比如这个:
_.groupBy(arrays, function(num){return num[0]+'.'+num[2]});
结果:
Object {0.01010: Array[1], 4.1111: Array[1], 9.01010: Array[1], 6.01010: Array[1]}
考虑您的数据。
或者,如果你想组由第三值,然后组合这些结果通过第一个值,我们可以这样做:
var out = _.groupBy(arrays, function(num){return num[2] });
out2={};
for (var prop in out) {
out2[prop] = _.groupBy(out[prop],function(num) {return num[0]});
}
其中,有这样的数据:
阵列= [ [0, 'A', '01010'],[4, 'CD', '1111'],[9, 'FF', '01010'],[6, 'AX', '01010'],[0 ,'AX','01010']]`
(因此我们有一个重复的第一项)产生:
01010:对象0:数组[2] 6:数组[1] 9:数组[1] 1111:对象4:数组[1]
什么,如果,如果我想按第一和第三组进行分组? – KJW
看到我更新的答案 - 是你想到的? – KayakDave
分组时,一定要小心'num [0] + num [2]',一些'num [2]'值长度为四和五,所以你可以轻松地将两个不同的条目混合到一个组中。 –