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;
   }, {});
};
相关推荐
GZ同学1 分钟前
单双变量Ripley’s K函数 R 语言实现
开发语言·r语言
Channing Lewis2 分钟前
PHP 解析 Excel 的那些坑:一次“行号错位”引发的数据丢失
开发语言·php·excel
小小龙学IT9 分钟前
Apache Airflow 2.x 深度指南:用 Python 编排一切的现代化工作流引擎
开发语言·python·apache
難釋懷10 分钟前
Nginx获取客户端真实IP
服务器·前端·nginx
少爷晚安。11 分钟前
Java基础02_JDK&JRE下载安装及环境配置
java·开发语言
小冷爱读书13 分钟前
allocator
开发语言·c++
小冷爱读书16 分钟前
C++ 单例四种实现完整演进逻辑
开发语言·c++·c++学习
bubiyoushang88826 分钟前
电力线信道“五类噪声”仿真MATLAB
开发语言·matlab
cici1587426 分钟前
彩色图像模糊增强(Fuzzy Enhancement)MATLAB 实现
开发语言·算法·matlab
kaikaile199527 分钟前
图像稀疏化分解 + 压缩感知(CS)重建 MATLAB
开发语言·计算机视觉·matlab