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;
   }, {});
};
相关推荐
吴梓穆1 分钟前
UE5 C++ 注册 开始重叠和结束重叠事件
开发语言·c++·ue5
雨翼轻尘1 分钟前
01_HTML基本结构
前端·html·基本结构
AI玫瑰助手4 分钟前
Python函数:内置函数(len/max/min/sorted等)详解
android·开发语言·python
右耳朵猫AI4 分钟前
前端周刊2026W22 | React 13周年、TanStack Router、Deno 2.8、Node.js 26、npm 分阶段发布
前端·react.js·node.js
scan7244 分钟前
从runtime获取信息
java·服务器·前端
木头羊oll9 分钟前
Uniapp 与 H5 在 App 端的交互
前端·javascript·html
咸鱼翻身小阿橙11 分钟前
C# WinForms 控件学习项目
开发语言·学习·c#
右耳朵猫AI13 分钟前
Go周刊2026W22 | GoReleaser 2.16、chi 5.3、tldx 1.4、wazero 1.12、Buf 1.70
开发语言·后端·golang
可别39018 分钟前
Vue 极简实现语音实时转写(录音转文字,低网络依赖、开箱即用)
前端·javascript·vue.js
AI人工智能+电脑小能手18 分钟前
【大白话说Java面试题 第105题】【并发篇】第5题:说一下 synchronized 关键字的底层原理?
java·开发语言·面试