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;
   }, {});
};
相关推荐
不可能片场9 小时前
Electron 发布核验 别把没查到当成没发出去
前端·electron
开开心心就好9 小时前
文件被占用删不掉?解锁工具强制删除
java·运维·服务器·开发语言·前端·pdf·ocr
YIAN9 小时前
前置篇:手把手用 Milvus + LangChain 搭建小说向量知识库,《天龙八部》EPUB 一键入库
javascript·langchain
YIAN9 小时前
进阶篇:RAG 优化第一步:给你的问答系统加上智能路由,实现双分支分流
javascript·langchain
云和数据.ChenGuang9 小时前
python大小整数范围解析
java·开发语言·python
inksci9 小时前
发布Ai生成的html markdown 推荐
前端·javascript·html
在西安放羊的牛油果9 小时前
WebP 图片优化方案详解
运维·前端·架构
fensnote9 小时前
西门子 S7 PLC 内部寄存器读写 Demo(C 语言)
c语言·开发语言
coding漫漫长路9 小时前
签名PDF一压就失效,接压缩需求前先查这5件事
前端