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 分钟前
JS篇-----
java·javascript·jvm
涛涛ing3 分钟前
4200万月活、85万行代码,Lovable用6个月把生产应用从Next.js迁到了TanStack Start
前端
悠仁さん7 分钟前
【C++】auto
java·前端·c++
郝学胜-神的一滴12 分钟前
C++ Templates 07:编译报错和调试手段与实战技巧
开发语言·c++·后端·软件工程·visual studio
害人终害己20 分钟前
Redisson 连接 Redis 失败 报错解决方案
java·开发语言
jimy130 分钟前
c++的静态类型和动态类型(二)
开发语言·c++
吠品31 分钟前
箭头函数为什么不能 new
开发语言·javascript·原型模式
liangshanbo121534 分钟前
面试题:React.memo 和 useMemo 的区别
前端·react.js·前端框架
苹果二36 分钟前
使用Vue的指南
前端·javascript·vue.js
谢亮_vipxieliang39 分钟前
PHP 8 新特性:构造器属性提升与实战
开发语言·后端·php