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;
   }, {});
};
相关推荐
Rik5 分钟前
用 AI Skill 封装你的工作流:从代码规范到全流程提效实战
前端·后端
楼田莉子6 分钟前
Linux网络:NAT_代理
linux·运维·服务器·开发语言·c++·后端
薯老板7 分钟前
JavaScript原型,原型链
javascript
Dabei9 分钟前
Android TV 焦点处理详解:遥控器与空鼠
android·前端
froginwe1115 分钟前
jEasyUI 创建基础树形网格
开发语言
愚者Pro40 分钟前
Flutter基础学习
前端·javascript·vue.js
ZC跨境爬虫1 小时前
跟着 MDN 学 HTML day_17:媒体与 Web Audio API 自动播放指南——策略、检测与最佳实践
前端·笔记·ui·html·音视频·媒体
canonical_entropy1 小时前
Nop Chaos Flux:百度AMIS之后的下一代低代码渲染引擎
前端·低代码·ai编程
Victory_20251 小时前
c#定时器顺序控制写法
开发语言·c#·c#顺序控制+定时器
时光足迹1 小时前
Tiptap 简单编辑器模版
前端·javascript·react.js