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;
   }, {});
};
相关推荐
落魄大学生之流水线上谋生计15 分钟前
Java锁全面指南:从基础概念到企业级应用
java·开发语言
for_ever_love__19 分钟前
python基础语法学习: 闭包
开发语言·python·学习·闭包
ly768923 分钟前
Python 全面入门:从核心语法到工程实践
开发语言·python
why技术26 分钟前
eli5,我觉得这个全网在吹的技能,使用体验真的很一般啊。
前端·人工智能·后端
excel27 分钟前
记录升级 nuxt3 到 nuxt4 记录
前端
剑胆琴心静水深流1 小时前
全栈之路6---web集成与呈现
前端·vue.js·spring boot·分布式·spring·前端框架·npm
前端snow1 小时前
ai agent -- Memory汇总
前端
艾伦_耶格宇2 小时前
【AI】-4 OpenCode Go 接入 Obsidian 完整指南
运维·开发语言·人工智能·agent·opencode
ITresearchGuest2 小时前
AI 焦虑下,前端该何去何从
前端·人工智能
沙盘客2 小时前
AFSIM 示例解读(03)· 六自由度飞行仿真 six_dof(下):机场运作与弹道导弹投送
java·javascript·经验分享