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;
   }, {});
};
相关推荐
研☆香6 分钟前
可选链运算符和空值合并运算符的使用
前端·javascript·vue.js
leeyi9 分钟前
SSE 到了浏览器会怎样:解析、重连与中止(第105篇)
前端
后台模板学习11 分钟前
Rust vs Python 在用户认证模块中的实现:底层
开发语言·python·rust
雪芽蓝域zzs12 分钟前
第二十七节:进阶:路由权限控制 + 404 / 401 全局异常页面开发
前端·javascript·html
风骏时光牛马13 分钟前
稳定性治理与疑难问题深度分析实践
前端
所念皆星海91118 分钟前
Python学习---DAY10函数
开发语言·python·学习
光影少年23 分钟前
react navite 简单原生方法双向调用示例
javascript·react native·react.js
zzzzzz31025 分钟前
react-bits:把“酷炫组件”放回 React 组件化的语境里看
javascript·react.js·动效
wuyk5553 小时前
104.C 语言字节对齐:从底层原理到工程实践的完整指南
c语言·开发语言·stm32·单片机·嵌入式硬件
君顾19 小时前
智慧零售实战指南:从技术架构到落地方案全解析
java·开发语言·零售