目錄
JavaScript數組元素合併:將相同ID的元素合併到一個對像中
首頁 web前端 js教程 如何使用JavaScript將具有相同ID的數組元素合併到一個對像中?

如何使用JavaScript將具有相同ID的數組元素合併到一個對像中?

Apr 04, 2025 pm 05:09 PM
switch red

如何使用JavaScript將具有相同ID的數組元素合併到一個對像中?

JavaScript數組元素合併:將相同ID的元素合併到一個對像中

在數據處理中,經常需要將具有相同ID的數組元素合併成單個對象。本文提供一種JavaScript解決方案,將具有相同ID但屬性不同的數組元素,轉換成新的數組格式。

原始數據格式:

 const list = [
    { id: "202301", jine: 23, type: "晚餐" },
    { id: "202301", jine: 87.5, type: "早餐" },
    { id: "202301", jine: 1065.5, type: "中餐" },
    { id: "202302", jine: 10, type: "晚餐" },
    { id: "202302", jine: 181.5, type: "早餐" },
    { id: "202302", jine: 633.5, type: "中餐" }
];
登入後複製

目標數據格式:

 const targetList = [
    { id: "202301", jine1: 87.5, jine2: 1065.5, jine3: 23 },
    { id: "202302", jine1: 181.5, jine2: 633.5, jine3: 10 }
];
登入後複製

解決方案:

我們將使用reduce方法實現數據轉換。該方法迭代數組,將每個元素累積到一個結果對像中。

 const result = Object.values(list.reduce((acc, curr) => {
    const { id, jine, type } = curr;
    if (!acc[id]) {
        acc[id] = { id };
    }
    switch (type) {
        case '早餐': acc[id].jine1 = jine; break;
        case '中餐': acc[id].jine2 = jine; break;
        case '晚餐': acc[id].jine3 = jine; break;
    }
    return acc;
}, {}));

console.log(result); // 輸出目標數據格式
登入後複製

代碼解釋:

  1. reduce方法: reduce方法迭代list數組,將每個元素累積到一個對象acc中。
  2. acc[id] :使用id作為鍵,將數據存儲到acc對像中。如果id不存在,則創建一個新的對象。
  3. switch語句:根據type屬性的值,將jine值分別賦值給jine1jine2jine3
  4. Object.values :最後,使用Object.values方法將acc對象轉換為數組,得到目標數據格式。

此方法清晰簡潔,避免了使用外部庫,直接利用JavaScript內置方法實現數據轉換。 它也更易於擴展,如果需要處理更多類型的餐飲,只需在switch語句中添加更多case即可。

以上是如何使用JavaScript將具有相同ID的數組元素合併到一個對像中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1655
14
CakePHP 教程
1413
52
Laravel 教程
1306
25
PHP教程
1252
29
C# 教程
1226
24
HDFS配置CentOS需要哪些步驟 HDFS配置CentOS需要哪些步驟 Apr 14, 2025 pm 06:42 PM

在CentOS系統上搭建Hadoop分佈式文件系統(HDFS)需要多個步驟,本文提供一個簡要的配置指南。一、前期準備安裝JDK:在所有節點上安裝JavaDevelopmentKit(JDK),版本需與Hadoop兼容。可從Oracle官網下載安裝包。環境變量配置:編輯/etc/profile文件,設置Java和Hadoop的環境變量,使系統能夠找到JDK和Hadoop的安裝路徑。二、安全配置:SSH免密登錄生成SSH密鑰:在每個節點上使用ssh-keygen命令

使用DICR/YII2-Google將Google API集成在YII2中 使用DICR/YII2-Google將Google API集成在YII2中 Apr 18, 2025 am 11:54 AM

vProcesserazrabotkiveb被固定,мнелостольностьстьс粹餾標д都LeavallySumballanceFriablanceFaumDoptoMatification,Čtookazalovnetakprosto,kakaožidal.posenesko

centos redis如何配置慢查詢日誌 centos redis如何配置慢查詢日誌 Apr 14, 2025 pm 04:54 PM

在CentOS系統上啟用Redis慢查詢日誌,提升性能診斷效率。以下步驟將指導您完成配置:第一步:定位並編輯Redis配置文件首先,找到Redis配置文件,通常位於/etc/redis/redis.conf。使用以下命令打開配置文件:sudovi/etc/redis/redis.conf第二步:調整慢查詢日誌參數在配置文件中,找到並修改以下參數:#慢查詢閾值(毫秒)slowlog-log-slower-than10000#慢查詢日誌最大條目數slowlog-max-len

如何利用Redis緩存方案高效實現產品排行榜列表的需求? 如何利用Redis緩存方案高效實現產品排行榜列表的需求? Apr 19, 2025 pm 11:36 PM

Redis緩存方案如何實現產品排行榜列表的需求?在開發過程中,我們常常需要處理排行榜的需求,例如展示一個�...

HDFS配置CentOS需要修改哪些文件 HDFS配置CentOS需要修改哪些文件 Apr 14, 2025 pm 07:27 PM

在CentOS上配置Hadoop分佈式文件系統(HDFS)時,需要修改以下關鍵配置文件:core-site.xml:fs.defaultFS:指定HDFS的默認文件系統地址,例如hdfs://localhost:9000。 hadoop.tmp.dir:指定Hadoop臨時文件的存儲目錄。 hadoop.proxyuser.root.hosts和hadoop.proxyuser.ro

CentOS HDFS配置報錯怎麼解決 CentOS HDFS配置報錯怎麼解決 Apr 14, 2025 pm 07:06 PM

CentOS系統下HDFS配置錯誤排查指南本文旨在幫助您解決CentOS系統中配置HDFS時遇到的問題。請按照以下步驟進行排查:Java環境驗證:確認JAVA_HOME環境變量已正確設置。在/etc/profile或~/.bashrc文件中添加以下內容:exportJAVA_HOME=/path/to/your/javaexportPATH=$JAVA_HOME/bin:$PATH執行source/etc/profile或source~/.bashrc使配置生效。 Hadoop

HDFS文件系統在CentOS上的使用技巧 HDFS文件系統在CentOS上的使用技巧 Apr 14, 2025 pm 07:30 PM

CentOS系統下HDFS文件系統的安裝、配置及優化指南本文將指導您如何在CentOS系統上安裝、配置和優化Hadoop分佈式文件系統(HDFS)。 HDFS安裝與配置Java環境安裝:首先,確保已安裝合適的Java環境。編輯/etc/profile文件,添加以下內容,並將/usr/lib/java-1.8.0/jdk1.8.0_144替換為您的實際Java安裝路徑:exportJAVA_HOME=/usr/lib/java-1.8.0/jdk1.8.0_144exportPATH=$J

標題: 如何使用 Composer 解決分佈式鎖問題 標題: 如何使用 Composer 解決分佈式鎖問題 Apr 18, 2025 am 08:39 AM

摘要描述:在開發高並發應用時,分佈式鎖是確保數據一致性的關鍵工具。本文將從一個實際案例出發,詳細介紹如何使用Composer安裝並利用dino-ma/distributed-lock庫來解決分佈式鎖問題,確保系統的安全性和高效性。

See all articles