使用reduce和ES6语法
太简单了,就不解释了
let obj = [
{
id: 1,
name: 'zs'
}, {
id: 1,
name: 'ls'
}, {
id: 2,
age: 12
}, {
id: 2,
age: 18
}
]
function fn(obj) {
obj = obj.reduce((pre, cur) => {
pre[cur.id] ? pre[cur.id].push(cur) : pre[cur.id] = [cur]
return pre
}, {})
obj = Object.values(obj)
console.log(obj);
}
fn(obj)