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;
   }, {});
};
相关推荐
Chasing Aurora2 分钟前
Python后端开发之旅(二)
开发语言·python·语言模型·langchain·ai编程
n***i952 分钟前
前端技术的下一场进化:从工程化走向智能化的全面重构
前端·重构
2401_891957314 分钟前
简单了解一下智能指针(C++)
开发语言·c++
archko5 分钟前
用rust写了一个桌面app,就不再想用kmp了
开发语言·后端·rust
@大迁世界7 分钟前
紧急:React 19 和 Next.js 的 React 服务器组件存在关键漏洞
服务器·前端·javascript·react.js·前端框架
晓得迷路了8 分钟前
栗子前端技术周刊第 109 期 - Vite 8 Beta、JavaScript 三十周年、Prettier 3.7...
前端·javascript·vite
Terry_Tsang9 分钟前
ceph mon 报错 full ratio(s) out of order 解决方法
服务器·前端·ceph
星释10 分钟前
Rust 练习册 109:深入探索列表关系判断
开发语言·后端·rust
lsx20240611 分钟前
Python3 实例
开发语言
别叫我->学废了->lol在线等12 分钟前
自然语言转成formily+shadcn组件的jsonschema
javascript·json