在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中文網其他相關文章!