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;
   }, {});
};
相关推荐
她说彩礼65万几秒前
C# 实现简单的日志打印
开发语言·javascript·c#
绿浪19842 分钟前
c# 中结构体 的定义字符串字段(性能优化)
开发语言·c#
skywalk816315 分钟前
pytest测试的时候这是什么意思?Migrating <class ‘kotti.resources.File‘>
前端·python
房开民20 分钟前
可变参数模板
java·开发语言·算法
一只蝉nahc38 分钟前
vue使用iframe内嵌unity模型,并且向模型传递信息,接受信息
前端·vue.js·unity
t***54440 分钟前
如何在现代C++中更有效地应用这些模式
java·开发语言·c++
状元岐1 小时前
C#反射从入门到精通
java·javascript·算法
子兮曰1 小时前
Bun v1.3.12 深度解析:新特性、性能优化与实战指南
前端·typescript·bun
2401_885885042 小时前
易语言彩信接口怎么调用?E语言Post实现多媒体数据批量下发
前端
Victoria.a2 小时前
python基础语法
开发语言·python