`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://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;廣泛應用于數字電路設計、驗證及系統…