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;
   }, {});
};
相关推荐
wjs20241 天前
Kotlin 条件控制
开发语言
我命由我123451 天前
Kotlin 开发 - Kotlin Lambda 表达式返回值
android·java·开发语言·java-ee·kotlin·android studio·android-studio
生活在一步步变好i1 天前
前端加载优化核心知识点详解
前端
雨中散步撒哈拉1 天前
22、做中学 | 高一下期 | Golang反射
开发语言·golang·状态模式
a努力。1 天前
中国电网Java面试被问:Dubbo的服务目录和路由链实现
java·开发语言·jvm·后端·面试·职场和发展·dubbo
2501_948195341 天前
RN for OpenHarmony英雄联盟助手App实战:关于实现
javascript·react native·react.js
C_心欲无痕1 天前
理解前端的运行时与编译时
前端
JosieBook1 天前
【Vue】10 Vue技术——Vue 中的数据代理详解
javascript·vue.js·ecmascript
itwangyang5201 天前
人工智能药物设计和生信常用 R 包一键全自动安装脚本
开发语言·人工智能·r语言
catchadmin1 天前
PHP 8.5 升级生存指南:避免凌晨两点回滚的检查清单
开发语言·php