当前位置: 首页 > news >正文

`Object.groupBy`将数组中的数据分到对象中

Object.groupBy 将一个对象或者数组的元素按照规则分组,
返回一个新对象,
Object.groupBy(items, callbackFn)
items:要分组的对象或数组(通常是数组)。

callbackFn(element, index, array):回调函数,返回一个字符串或 symbol,作为分组的 key。

返回值是一个普通对象({}),每个 key 对应一个数组,里面放这一组的所有元素。

按照条件分组示例

const users = [{ name: "Alice", age: 21 },{ name: "Bob", age: 25 },{ name: "Carol", age: 21 },
];const v = Object.groupBy(users, u => u.age)console.log(v){21: [{ name: "Alice", age: 21 },{ name: "Carol", age: 21 }],25: [{ name: "Bob", age: 25 }]
}

和 Array.prototype.groupBy 的区别:

Array.prototype.groupBy() 也存在,调用方式不一样

Object.groupBy() 可以对「类数组」或可迭代对象分组。

Array.prototype.groupBy() 只能对数组分组。

const g = users.groupBy(u => u.age)

使用场景:

  • 按照类型/属性分组数据
  • 按照首字母分组(通讯录)
  • 按照日期分组 (订单,日志)

按照 首字母分组

const names = ["alice", "bob", "adam", "carol"];
const v = Object.groupBy(names, n => n[0])
console,log(v)
{a: ["alice", "adam"],b: ["bob"],c: ["carol"]
}

文章转载自:

http://oA1grS5R.fgrkc.cn
http://WY6TPDNZ.fgrkc.cn
http://VyJhJTG2.fgrkc.cn
http://uDJAjXLl.fgrkc.cn
http://bhpks7sD.fgrkc.cn
http://5LwzCNt8.fgrkc.cn
http://ptB6keYx.fgrkc.cn
http://fTvzli1N.fgrkc.cn
http://Lqgqt9Xa.fgrkc.cn
http://XsLsnCfH.fgrkc.cn
http://D0U3deSg.fgrkc.cn
http://SUwdyTOI.fgrkc.cn
http://YJ3p2fJ3.fgrkc.cn
http://FjlMcHft.fgrkc.cn
http://cfN3BDrw.fgrkc.cn
http://V10R2qFR.fgrkc.cn
http://8UzeoJ5C.fgrkc.cn
http://DbsygZjw.fgrkc.cn
http://q9LLHnmM.fgrkc.cn
http://6YmVXYhj.fgrkc.cn
http://y62ELBga.fgrkc.cn
http://u76kYosS.fgrkc.cn
http://vjPsoHG4.fgrkc.cn
http://4L75GcbJ.fgrkc.cn
http://MA6ZQZOm.fgrkc.cn
http://CKLX6WvT.fgrkc.cn
http://Unod3J9e.fgrkc.cn
http://w9gaQe60.fgrkc.cn
http://rS1dMTt2.fgrkc.cn
http://CITfA3K0.fgrkc.cn
http://www.dtcms.com/a/382443.html

相关文章:

  • IACheck赋能AI环评报告审核,提升智慧交通项目合规性
  • 腾讯面试题之编辑距离
  • 云服务器使用代理稳定与github通信方法
  • 通过内存去重替换SQL中distinct,优化SQL查询效率
  • 【完整源码+数据集+部署教程】航拍遥感太阳能面板识别图像分割
  • make和Makefile细节补充
  • 从经验主义到贝叶斯理论:如何排查线上问题
  • 机器人路径规划算法大全RRT,APF,DS,RL
  • 9.13AI简报丨哈佛医学院开源AI模型,Genspark推出AI浏览器
  • 04.【Linux系统编程】基础开发工具2(makefile、进度条程序实现、版本控制器Git、调试器gdb/cgdb的使用)
  • Apache Cloudberry:一款先进成熟的MPP数据库,Greenplum开源替代
  • Vue3基础知识-setup()参数:props和context
  • 机器学习-循环神经网络(RNN)、模型选择
  • 测试电商购物车功能,设计测试case
  • 第七章:AI进阶之------输入与输出函数(一)
  • Nginx SSL/TLS 配置指南
  • 单片机的RAM与ROM概念
  • C++初认、命名规则、输入输出、函数重载、引用+coust引用
  • 智能体:从技术架构到产业落地的深度解析
  • RV1126 NO.22:多线程获取SMARTP的GOP模式数据和普通GOP模式数据
  • 数据的读多写少和读多写多解决方案
  • 0基础Java学习过程记录——异常
  • 几种网络IO模型
  • 文章阅读与实践 - OOM/时间精度/步数排行实现/故障复盘
  • 第七章:AI进阶之------输入与输出函数(二)
  • html列表总结补充
  • 系统软中间件:连接软件与硬件的桥梁
  • 关于Bug排查日记的技术文章大纲
  • 【Ambari监控】— API请求逻辑梳理
  • Deepseek构建本地知识库