例如:我的数组如下所示:
let arr = [{
name: "Peter"
}, {
name: "Peter"
}, {
name: "John"
}, {
name: "Peter"
}, {
name: "Sarah"
}, {
name: "John"
}]
我需要创建数组,它看起来像这样:
let dupArray = [
[{
name: "Peter"
}, {
name: "Peter"
}, {
name: "Peter"
}],
[{
name: "John"
}, {
name: "John"
}],
[{
name: "Sarah"
}]
]
再说一遍,这不是关于复制,而是关于创建重复分组的新数组。
最佳答案
将它们简化为 Map 并获取值():
let arr = [{
name: "Peter"
}, {
name: "Peter"
}, {
name: "John"
}, {
name: "Peter"
}, {
name: "Sarah"
}, {
name: "John"
}];
let dupArr =
[...arr.reduce((a,b) =>
a.set(b.name , (a.get(b.name) || []).concat(b)),
new Map()).values()];
console.log(dupArr);
关于javascript - 创建重复的js数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45691355/