首頁 >web前端 >js教程 >如何在 JavaScript 中使用共享鍵求和物件屬性值?

如何在 JavaScript 中使用共享鍵求和物件屬性值?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-14 17:18:18254瀏覽

How to Sum Object Property Values with Shared Keys in JavaScript?

在JavaScript 中使用共享鍵求和物件屬性值

考慮以下JavaScript 物件陣列:

const objArr = [
    {key: "Mon Sep 23 2013 00:00:00 GMT-0400", val: 42},
    {key: "Mon Sep 24 2013 00:00:00 GMT-0400", val: 78},
    {key: "Mon Sep 25 2013 00:00:00 GMT-0400", val: 23},
    {key: "Mon Sep 23 2013 00:00:00 GMT-0400", val: 54}, // Duplicate key
];

考慮以下JavaScript 物件陣列:

const reducedObjArr = [
    {key: "Mon Sep 23 2013 00:00:00 GMT-0400", val: 96},
    {key: "Mon Sep 24 2013 00:00:00 GMT-0400", val: 78},
    {key: "Mon Sep 25 2013 00:00:00 GMT-0400", val: 23},
];

目標是透過對相應的val值求和來合併重複的鍵,從而產生一個類似的數組this:
let counts = objArr.reduce((prev, curr) => {
  let count = prev.get(curr.key) || 0;
  prev.set(curr.key, curr.val + count);
  return prev;
}, new Map());

let reducedObjArr = [...counts].map(([key, value]) => {
  return {key, value};
});

為了實現這一點,可以利用採用reduce和map方法的強大解決方案:

這種方法首先使用reduce建立一個Map,其中每個鍵代表原始陣列中的唯一鍵,對應的值是具有相同鍵的所有val 值的總和。 最後,在計數上呼叫 map 方法map 將其轉換回具有所需合併值的物件陣列。此程式碼的輸出是reduceObjArr,其中包含所需的合併和求和值。

以上是如何在 JavaScript 中使用共享鍵求和物件屬性值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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