初始结果是一个数组,最终得到一个对象。
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;}, {});
};