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;
   }, {});
};
相关推荐
Data_Journal6 小时前
如何将网页抓取用于机器学习
大数据·开发语言·数据库·python·scrapy
东风微鸣6 小时前
AI依赖更新别裸奔🚨
javascript
掘金挖土6 小时前
前端手摸手跑路之 AI 应用开发(六)
前端·后端
liuyt20227 小时前
【javaweb】day4
前端
研☆香7 小时前
echarts图表的使用方法
javascript
郝学胜-神的一滴7 小时前
Effective Python 条款 13:善用星号解包,告别下标切片拆分的坑
服务器·开发语言·数据结构·python·程序人生·pycharm
一水鉴天7 小时前
词、术语、概念:从特征集收束到统一拓扑变换的升格与降格模型 20260915(豆包)
开发语言·人工智能
志尊宝7 小时前
Vue3 零基础每日笔记(024):组件的创建与使用——从 import 到自动导入
前端·vue.js·笔记·前端框架·html5
@PHARAOH7 小时前
WHAT - 从前端组件化思维到后端架构设计入门
前端·微服务·架构