js实现groupby

初始结果是一个数组,最终得到一个对象。

javascript 复制代码
let arr = [{
   sex: 'male',
   name: 'xiaomi'
}, {
   sex: 'male',
   name: 'lisi'
}, {
   sex: 'female',
   name: 'zhangsan'
}]

最终得到:

代码:

javascript 复制代码
const groupBy = (list, key) => {
   const obj = {};
   list.map(item => {
       if (!obj[item[key]]) { //如果不存在这个属性
           obj[item[key]] = [];
       }
       obj[item[key]].push(item);
   });
   return obj;
}

简写:

javascript 复制代码
const group_signal = (data, key) => {
   return data.reduce(function(prev, cur) {
       (prev[cur[key]] = prev[cur[key]] || []).push(cur);
       return prev;
   }, {});
};
相关推荐
马猴烧酒.2 分钟前
【面试八股|Java集合】Java集合常考面试题详解
java·开发语言·python·面试·八股
以卿a8 分钟前
C++(继承)
开发语言·c++·算法
lly20240610 分钟前
XQuery 选择和过滤
开发语言
码丁_11711 分钟前
为什么前端需要做优化?
前端
测试工程师成长之路18 分钟前
Serenity BDD 框架:Java + Selenium 全面指南(2026 最新)
java·开发语言·selenium
Mr Xu_22 分钟前
告别硬编码:前端项目中配置驱动的实战优化指南
前端·javascript·数据结构
czxyvX25 分钟前
017-AVL树(C++实现)
开发语言·数据结构·c++
你真是饿了43 分钟前
1.C++入门基础
开发语言·c++
天天进步20151 小时前
Python全栈项目:实时数据处理平台
开发语言·python
Tipriest_1 小时前
Python中is关键字详细说明,比较的是地址还是值
开发语言·python