首頁 >web前端 >js教程 >如何有效地對 JavaScript 物件中相似鍵的值求和?

如何有效地對 JavaScript 物件中相似鍵的值求和?

Barbara Streisand
Barbara Streisand原創
2024-11-23 04:17:13209瀏覽

How to Efficiently Sum Values of Similar Keys in JavaScript Objects?

對相似物件鍵的值求和

給定一個 JavaScript 物件數組,如何有效地對與相似鍵關聯的值求和?

方法

為了實現這一目標,我們可以採用以下方法步驟:

  1. 建立Holder 物件: 迭代原始陣列並使用名稱屬性作為鍵填充物件Holder。對於每個鍵,將值初始化為對應的值,或者如果鍵已存在,則將值新增至現有值。
  2. 建立新數組:一旦擁有了holder對象,就建立透過迭代其屬性來建立新數組 obj2。對於每個屬性,使用名稱鍵和值的總和作為值來建立一個物件。

示例

考慮示例數組:

var obj = [
  { 'name': 'P1', 'value': 150 },
  { 'name': 'P1', 'value': 150 },
  { 'name': 'P2', 'value': 200 },
  { 'name': 'P3', 'value': 450 }
];

應用上述方法:

// Create a holder object to sum values for similar names
var holder = {};
obj.forEach(function(d) {
  if (holder.hasOwnProperty(d.name)) {
    holder[d.name] = holder[d.name] + d.value;
  } else {
    holder[d.name] = d.value;
  }
});

// Populate a new array with the summed values
var obj2 = [];
for (var prop in holder) {
  obj2.push({ name: prop, value: holder[prop] });
}

// Output the result
console.log(obj2);

預期輸出:

[
  { 'name': 'P1', 'value': 300 },
  { 'name': 'P2', 'value': 200 },
  { 'name': 'P3', 'value': 450 }
]

以上是如何有效地對 JavaScript 物件中相似鍵的值求和?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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