首頁 > web前端 > js教程 > 如何有效地將 JavaScript 物件與匹配的鍵合併並求和它們的值?

如何有效地將 JavaScript 物件與匹配的鍵合併並求和它們的值?

Linda Hamilton
發布: 2024-12-08 05:51:09
原創
308 人瀏覽過

How to Efficiently Merge JavaScript Objects with Matching Keys and Sum Their Values?

合併 JavaScript數組中具有匹配屬性的物件

考慮以下物件數組:

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
]
登入後複製

我們的目標是合併重複的鍵和將它們各自的值相加,得到:

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}
]
登入後複製

雖然初始嘗試可能涉及迭代和推送值,更有效的方法涉及利用JavaScript內建的函數:

// Use a Map to count values with the same key
const counts = objArr.reduce((prev, curr) => {
  let count = prev.get(curr.key) || 0;
  prev.set(curr.key, curr.val + count);
  return prev;
}, new Map());

// Convert the Map back to an array of objects
const reducedObjArr = [...counts].map(([key, value]) => {
  return {key, value};
});
登入後複製

此方法將陣列簡化為 Map,其中鍵代表重複的鍵值,值代表它們的總和。然後,地圖將轉換回物件數組以提高可讀性。

以上是如何有效地將 JavaScript 物件與匹配的鍵合併並求和它們的值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板