let groups = {}
array.forEach(function (o) {
var group = JSON.stringify(f(o))
groups[group] = groups[group] || []
groups[group].push(o)
})
return Object.keys(groups).map(function (group) {
return groups[group]
})
}
const arrayGroupBy = (list, groupId) =>{
let sorted = groupBy(list, function (item) {
return [item[groupId]]
})
return sorted
}
arrayGroupBy(数组, '字段名称')
你是想把数组中,每个元素,按照元素的值,按照一定规则进行重新分组吧。比如,你的例子里,元素的值以"a"打头的,放一个数组,以"b"打头的放一个数组里,首先遍历数组,然后根据规则重新挑选元素,放入新数组中。var a=[],b=[]
for(var i=0i<example.lengthi++){
if(example[i].substring(0,1)=="a"){
a.push(example[i])
break
}
if(example[i].substring(0,1)=="b"){
b.push(example[i])
break
}
}
也可以按照其他规则进行区分,看你的区分规则了。
1,将数组array分成长度为subGroupLength的小数组并返回新数组
<pre style="margin: 0pxpadding: 0pxwhite-space: pre-wrapoverflow-wrap: break-word">function group(array, subGroupLength) {
let index = 0
let newArray = []
while(index <array.length) {
newArray.push(array.slice(index, index += subGroupLength))
}
return newArray
}
2,例如:
var Array = [1,2,3,4,5,6,7,8,9,10,11,12]
var groupedArray = group(Array, 6)
得到的groupedArray 数组为:
groupedArray[[1,2,3,4,5,6],[7,8,9,10,11,12]]</pre>