初始结果是一个数组,最终得到一个对象。
let arr = [{
sex: 'male',
name: 'xiaomi'
}, {
sex: 'male',
name: 'lisi'
}, {
sex: 'female',
name: 'zhangsan'
}]
最终得到:
代码:
const groupBy = (list, key) => {
const obj = {};
list.map(item => {
if (!obj[item[key]]) { //如果不存在这个属性
obj[item[key]] = [];
}
obj[item[key]].push(item);
});
return obj;
}
简写:
const group_signal = (data, key) => {
return data.reduce(function(prev, cur) {
(prev[cur[key]] = prev[cur[key]] || []).push(cur);
return prev;
}, {});
};