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;
   }, {});
};
相关推荐
Bony-2 分钟前
Go语言垃圾回收机制详解与图解
开发语言·后端·golang
hmywillstronger8 分钟前
【Rhino】【Python】 查询指定字段并cloud标注
开发语言·python
新缸中之脑9 分钟前
Weave.js:开源实时白板库
开发语言·javascript·开源
我能坚持多久11 分钟前
D16—C语言内功之数据在内存中的存储
c语言·开发语言
Amumu1213815 分钟前
Vue组件化编程
前端·javascript·vue.js
leo__52022 分钟前
C#与三菱PLC串口通信源码实现(基于MC协议)
开发语言·c#
We་ct24 分钟前
LeetCode 6. Z 字形变换:两种解法深度解析与优化
前端·算法·leetcode·typescript
二十雨辰1 小时前
[python]-函数
开发语言·python
码农水水1 小时前
中国邮政Java面试被问:容器镜像的多阶段构建和优化
java·linux·开发语言·数据库·mysql·面试·php
福楠1 小时前
C++ STL | map、multimap
c语言·开发语言·数据结构·c++·算法