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;
   }, {});
};
相关推荐
Go away, devil几秒前
Java——IO
java·开发语言
oscar9992 分钟前
OpenCode Go :为开放编码模型准备的低价订阅方案
开发语言·后端·golang
布局呆星2 分钟前
Vite代理解决前端跨域问题 | fetch请求 | 环境变量
前端
.千余3 分钟前
【Linux】开发工具2:vim
linux·服务器·开发语言·学习
SWAGGY..4 分钟前
【C++初阶】:(10)vector的使用及模拟实现
开发语言·c++
所愿ღ5 分钟前
SSM框架-Spring2
java·开发语言·笔记·spring
sghuter10 分钟前
HTML头部元信息避坑指南
c语言·前端·html·cocoa
故事还在继续吗12 分钟前
C++11关键特性
开发语言·c++·算法
格林威12 分钟前
面阵相机 vs 线阵相机:堡盟与Basler选型差异全解析 +C++ 实战演示
开发语言·c++·人工智能·数码相机·计算机视觉·视觉检测·工业相机
无心使然云中漫步12 分钟前
Openlayers调用ArcGis地图服务之三 —— 要素查询(/query)
前端·arcgis·vue·数据可视化