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;
   }, {});
};
相关推荐
傻啦嘿哟1 分钟前
一篇文章讲清楚Python的变量作用域
开发语言·python
devilnumber1 分钟前
Java 二分查找(二分算法)详解 + 实战运用 + 核心坑点
java·开发语言·算法
右耳朵猫AI4 分钟前
前端周刊2026W23 | React 19.2.7、Conductor重写提速、Lovable切换TanStack Start
前端·react.js·前端框架
ch.ju7 分钟前
Java程序设计(第3版)第四章——重载和覆盖的区别
java·开发语言
zzqssliu8 分钟前
Next.js图片自适应压缩:跨境站点图片加载提速代码方案
linux·javascript·ubuntu
AI科技星12 分钟前
第四卷:橡皮泥江湖(拓扑学)
c语言·开发语言·网络·量子计算·agi·拓扑学
浮尘笔记13 分钟前
Go实现大文件异步流式采集引擎
开发语言·后端·golang
yugi98783816 分钟前
基于C#实现数字识别率的OCR方案
开发语言·c#·ocr
星越华夏19 分钟前
python中四种获取文件后缀名的方法
开发语言·python
copyer_xyf27 分钟前
FastAPI 项目骨架搭建
前端·后端·python