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;
   }, {});
};
相关推荐
艾上编程2 分钟前
第一章——办公自动化之Excel批量合并工具:Python助力高效办公
开发语言·python·excel
Sherry0074 分钟前
从零开始理解 JavaScript Promise:彻底搞懂异步编程
前端·javascript·promise
毛发浓密的女猴子4 分钟前
一次弹窗异常引发的思考:iOS present / push 底层机制全解析
前端
Toomey5 分钟前
一次 npm 更新强制2FA导致的发布失败的排查:403、2FA、Recovery Code、Granular Token 的混乱体验
前端
哆啦A梦15887 分钟前
商城后台管理系统 02,商品-页面添加-弹框添加
javascript·vue.js·elementui
用户4445543654267 分钟前
Android模块化管理
前端
小胖霞11 分钟前
vite+ts+monorepo从0搭建vue3组件库(五):vite打包组件库
前端·vue.js·前端框架
神算大模型APi--天枢64613 分钟前
国产硬件架构算力平台:破解大模型本地化部署难题,标准化端口加速企业 AI 落地
大数据·前端·人工智能·架构·硬件架构
AAA阿giao23 分钟前
从“拼字符串”到“魔法响应”:一场数据驱动页面的奇幻进化之旅
前端·javascript·vue.js
donecoding23 分钟前
解决 npm 发布 403 错误:全局配置 NPM Automation Token 完整指南
前端·javascript