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;
   }, {});
};
相关推荐
lsx2024064 分钟前
SQL CREATE DATABASE
开发语言
小小前端_我自坚强4 分钟前
React 核心技术深度笔记
前端·javascript·react.js
Pkmer4 分钟前
古法编程: SPA的路由浅思考
前端
直奔標竿4 分钟前
Java开发者AI转型第九课!突破知识边界!企业级 RAG (检索增强生成) 核心架构与 ETL 管道初探
java·开发语言·人工智能·后端·spring
hhb_6186 分钟前
R语言数据分析与可视化实战指南
开发语言·数据分析·r语言
Cobyte7 分钟前
9.响应式系统演进:effectScope 的作用与实现原理(Vue3.2)
前端·javascript·vue.js
skilllite作者7 分钟前
SkillLite Rust 沙箱与 AI Agent 自进化实战指南
开发语言·人工智能·后端·架构·rust
我星期八休息7 分钟前
Linux 进程核心原理全解:从冯诺依曼体系到进程控制全链路深度剖析
大数据·linux·服务器·开发语言·数据结构·c++·散列表
QCzblack8 分钟前
php-ser-libs
android·开发语言·php
heimeiyingwang8 分钟前
【架构实战】微前端架构设计与落地
前端·架构