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;
   }, {});
};
相关推荐
布茹 ei ai2 分钟前
7、基于GEE 平台的 VIIRS 夜间灯光监测工具
云计算·js·遥感·gee
star learning white4 分钟前
xm C语言12
服务器·c语言·前端
tabzzz5 分钟前
大道至简:万字漫谈前端性能监控
前端·javascript·性能优化
CoderCodingNo11 分钟前
【GESP】C++一级真题 luogu-B4410 [GESP202509 一级] 金字塔
开发语言·c++
0思必得012 分钟前
[Web自动化] CSS基础概念和介绍
前端·css·python·自动化·html·web自动化
小胖霞14 分钟前
全栈系列(15)github Actions自动化部署前端vue
前端·node.js·github
未来魔导15 分钟前
基于 Gin 框架的 大型 Web 项目推荐架构目录结
前端·架构·gin
free-elcmacom18 分钟前
Python实战项目<2>使用Graphviz绘制流程框图
开发语言·python·graphviz
ljuncong25 分钟前
python的装饰器怎么使用
开发语言·python
2501_9448755134 分钟前
Go后端工程师
开发语言·后端·golang