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;
   }, {});
};
相关推荐
Wenweno0o11 小时前
0基础Go语言Eino框架智能体实战-chatModel
开发语言·后端·golang
于慨11 小时前
Lambda 表达式、方法引用(Method Reference)语法
java·前端·servlet
石小石Orz11 小时前
油猴脚本实现生产环境加载本地qiankun子应用
前端·架构
从前慢丶11 小时前
前端交互规范(Web 端)
前端
@yanyu66612 小时前
07-引入element布局及spring boot完善后端
javascript·vue.js·spring boot
CHU72903512 小时前
便捷约玩,沉浸推理:线上剧本杀APP功能版块设计详解
前端·小程序
chenjingming66612 小时前
jmeter线程组设置以及串行和并行设置
java·开发语言·jmeter
GISer_Jing12 小时前
Page-agent MCP结构
前端·人工智能
王霸天12 小时前
💥别再抄网上的Scale缩放代码了!50行源码教你写一个永不翻车的大屏适配
前端·vue.js·数据可视化
小领航12 小时前
用 Three.js + Vue 3 打造炫酷的 3D 行政地图可视化组件
前端·github