let arr = [{a:'苹果',b:90},{a:'苹果',b:2},{a:'苹果',b:4},{a:'香蕉',b:78},{a:'西瓜',b:45},{a:'西瓜',b:15}]
最后生成
[{a:'苹果',b:90},{a:'苹果',b:2},{a:'苹果',b:4}]
[{a:'香蕉',b:78}]
[{a:'西瓜',b:45},{a:'西瓜',b:15}]
麻烦写一下代码步骤,谢谢
let arr = [{a:'苹果',b:90},{a:'苹果',b:2},{a:'苹果',b:4},{a:'香蕉',b:78},{a:'西瓜',b:45},{a:'西瓜',b:15}]
最后生成
[{a:'苹果',b:90},{a:'苹果',b:2},{a:'苹果',b:4}]
[{a:'香蕉',b:78}]
[{a:'西瓜',b:45},{a:'西瓜',b:15}]
麻烦写一下代码步骤,谢谢
这已知就有问题,选一种补全后的答案吧
问题调整为:
生成的结果:
`
{
'苹果': [ { a: '苹果', b: 90 }, { a: '苹果', b: 2 }, { a: '苹果', b: 4 } ],
'香蕉': [ { a: '香蕉', b: 78 } ],
'西瓜': [ { a: '西瓜', b: 45 }, { a: '西瓜', b: 15 } ]
}
`
答案
let res = {};
arr.forEach(item => {
if (!res[item.a]) {
res[item.a] = [];
}
res[item.a].push(item);
})
13 回答13k 阅读
7 回答2.2k 阅读
3 回答1.3k 阅读✓ 已解决
6 回答1.3k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
6 回答1.1k 阅读
Object.values([{a:'苹果',b:90},{a:'苹果',b:2},{a:'苹果',b:4},{a:'香蕉',b:78},{a:'西瓜',b:45},{a:'西瓜',b:15}].reduce((res, v) => ((res[v.a] ||= []).push(v), res), {}))
相当于下面