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://www.pswp.cn/diannao/99001.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/99001.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/99001.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

反序列化漏洞详解

用途限制声明,本文仅用于网络安全技术研究、教育与知识分享。文中涉及的渗透测试方法与工具,严禁用于未经授权的网络攻击、数据窃取或任何违法活动。任何因不当使用本文内容导致的法律后果,作者及发布平台不承担任何责任。渗透测试涉及复杂技…

SQL数据分析原代码--创建表与简单查询

CREATE TABLE:创建表,定义字段名、类型、注释INSERT INTO:插入数据,支持单条或批量插入SELECT:查询数据,*表示所有字段,AS可起别名,DISTINCT去重WHERE:条件筛选&#xff…

k8s查询ServiceAccount有没有列出 nodes 的权限

要检查 ServiceAccount xxxxxx:default 是否具有列出 nodes 的权限,可以使用以下方法:1. **使用 kubectl auth can-i 命令**这是最直接的方法,可以检查特定用户或 ServiceAccount 是否具有特定权限:kubectl auth can-i list nodes…

调试Python程序时,控制台一直打印SharedMemory read faild

from tkinter import filedialog filedialog.askopenfilename()在使用 tkinter 时,只要一处罚,控制台就不停打印 SharedMemory read faild ,虽然能用,但是大大的破坏了调试体验,看到如下的提示,你说烦不烦&…

QRCode React 完全指南:现代化二维码生成解决方案

前言 在数字化时代,二维码已经成为连接线上线下的重要桥梁。无论是分享链接、支付码、还是身份验证,二维码都扮演着不可或缺的角色。qrcode.react 是一个专门为 React 应用设计的二维码生成库,它能够快速、灵活地生成各种样式的二维码&#…

xxe外部实体注入漏洞

https://owasp.org/www-project-top-ten XXE基础 xxe外部实体注入 外部实体 xml(用于传输和存储数据) html(用于显示数据) 注入: SQL注入:用户输入数据被当做代码执行 1输入点 2.输入数据可以结合到数据库…

ros2获取topic信息解析

ros2 ros_discovery_info topic 发布逻辑疑问: 在运行ros2 topic info -v /topic时,运行的是p3,如何与p1进程通讯的呢? 进程间理论上应该是IPC

FFmpeg合成mp4

本章主要介绍如何使用FFmpeg来将一个音频文件和一个视频文件合成一个MP4文件,以及在这个过程中我们如何对编码过程进行封装以及sample_rate 重采样的过程(由于提供的音频文件的编码类型为S16,所以我们需要转化为MP4支持的FLTP浮点类型&#x…

第十九章 使用LAMP架构部署动态网站环境

第十九章 使用LAMP架构部署动态网站环境 文章目录第十九章 使用LAMP架构部署动态网站环境一、安装Httpd服务1、安装httpd服务2、启动httpd服务3、设置允许通过防火墙4、验证http服务是否成功二、安装Mariadb服务1、安装Mariadb服务2、启动Mariadb服务三、安装PHP服务1、列出可用…

Selenium应用中的核心JavaScript操作技巧

Selenium是一款强大的浏览器自动化测试工具,其操作浏览器的能力部分来自于其内嵌的JavaScript执行引擎。这使得Selenium不仅能够模拟用户在浏览器中的各种操作,还能执行复杂的JavaScript脚本,以实现更为精细的控制。本文将探讨如何通过Seleni…

《Linux 基础指令实战:新手入门的命令行操作核心教程(第一篇)》

前引:当你第一次面对 Linux 系统中那片闪烁着光标、只有黑白字符的终端界面时,或许会和很多初学者一样感到些许茫然:这些由字母和符号组成的 “指令” 究竟该如何输入?它们又能完成哪些神奇的操作?其实,Lin…

03.【Linux系统编程】基础开发工具1(yum软件安装、vim编辑器、编辑器gcc/g++)

目录 1. 软件包管理器 1.1 什么是软件包 1.2 Linux软件生态 1.3 yum具体操作 1.3.1 查看软件包 1.3.2 安装软件 1.3.3 卸载软件 1.3.4 注意事项(测试网络) 1.3.5 yum指令集总结 1.4 yum源目录、安装源 2. Vim编辑器的使用 2.1 Linux编辑器-vim使用 2.2 vim的基本概…

3DMAX自动材质开关插件AutoMaterial安装和使用方法

3DMAX自动材质开关AutoMaterial,是一个3dMax脚本插件,它根据材质编辑器中当前活动的材质自动将材质应用于3dMax中新创建的对象,也适用于您复制的没有材质的对象。它作为一个开关,可以绑定到按钮或菜单来打开和关闭它。该工具的创建…

Linux内核调优实战指南

内核调优通常通过修改内核运行时参数来实现,这些参数的配置文件是 Linux 系统中核心的性能调整点。 内核调优配置文件名称 /etc/sysctl.conf: 这是最传统和主要的内核参数配置文件。系统启动时或手动执行 sysctl -p 命令时会读取并应用其中的设置。/etc/sysctl.d/*.…

Java基础常见知识点

Java 中 和 equals() 的区别详解_java中与equals的区别及理解-CSDN博客https://blog.csdn.net/m0_64432106/article/details/142026852深入理解Java中方法的参数传递机制 - 悟小天 - 博客园https://www.cnblogs.com/sum-41/p/10799555.html浮点型精度是什么意思?为…

OD C卷 -【高效货运】

文章目录高效货运高效货运 货车的额定载货量为wt;货物A单件重量为wa,单件运费利润为pa;货物B单件重量wb,单件运费利润为pb;每次出车必须包含A、B货物,且单件货物都不可分割,总重量达到额定的载货量wt;每次出车能够获取…

手动解压并读取geo 文件 series_matrix_table_begin series_matrix_table_end之间的数据

手动解压并读取geo 文件 series_matrix_table_begin series_matrix_table_end之间的数据 1. 手动解压并读取文件内容 file_path <- “K:/download/geo/raw_data/GEO/GSE32967_series_matrix.txt.gz” 使用latin1编码读取文件所有行 con <- gzfile(file_path, “r”) all_…

主板硬件研发基础--DP/DP++

现在的主板大多数使用的是比DP功能更加强大的DP++。 DisplayPort++(DP++)是 DisplayPort 技术的增强版,旨在提升与多种视频接口的兼容性和连接性能。以下是关于它的详细介绍: 功能特性 多协议兼容:DP++ 接口不仅支持 DisplayPort 标准的信号传输,还可以通过内部的转换电…

科技行业新闻发布平台哪家好?多场景推广专业方案服务商推荐

面对海量得新闻发布平台和碎片化的传播场景&#xff0c;如何精准选择推广方案无疑是企业主面临的一大难题&#xff0c;对于技术迭代迅速的科技行业更是如此。针对复杂的市场环境&#xff0c;一些专业的新闻发布平台往往能够针对性地给出营销方案&#xff0c;并提供一定技术支持…

SystemVerilog 学习之SystemVerilog简介

SystemVerilog简介SystemVerilog是一种硬件描述和验证语言&#xff08;HDVL&#xff09;&#xff0c;由Accellera开发并于2005年成为IEEE标准&#xff08;IEEE 1800&#xff09;。它在传统Verilog基础上扩展了高级验证和设计功能&#xff0c;广泛应用于数字电路设计、验证及系统…