首頁 >web前端 >js教程 >如何合併具有相同鍵的陣列中的 JavaScript 物件?

如何合併具有相同鍵的陣列中的 JavaScript 物件?

Linda Hamilton
Linda Hamilton原創
2024-10-29 18:54:02172瀏覽

How can I merge JavaScript objects in an array that have the same key?

如何合併具有相同鍵的陣列中的JavaScript 物件

在JavaScript 中,您可能會遇到這樣的情況:您有一個具有公共鍵的物件數組,並且您需要將它們的值合併到一個物件中。這對於組織和聚合資料非常有用。

例如,考慮以下物件陣列:

<code class="javascript">var array = [
    {
        name: "foo1",
        value: "val1"
    }, {
        name: "foo1",
        value: [
            "val2",
            "val3"
        ]
    }, {
        name: "foo2",
        value: "val4"
    }
];</code>

在此範例中,物件共享鍵「name」。要將它們的值合併到單一物件中,您可以使用以下方法:

<code class="javascript">var output = [];

array.forEach(function(item) {
  var existing = output.filter(function(v, i) {
    return v.name == item.name;
  });
  if (existing.length) {
    var existingIndex = output.indexOf(existing[0]);
    output[existingIndex].value = output[existingIndex].value.concat(item.value);
  } else {
    if (typeof item.value == 'string')
      item.value = [item.value];
    output.push(item);
  }
});

console.dir(output);</code>

此程式碼的輸出將是兩個物件的陣列:

<code class="javascript">[
    {
        name: "foo1",
        value: [
            "val1",
            "val2",
            "val3"
        ]
    }, {
        name: "foo2",
        value: [
            "val4"
        ]
    }
]</code>

在此結果中,「foo1」鍵的值已合併到單一陣列中,「foo2」鍵保持不變。這種方法允許您有效地合併數組中共享公共鍵的對象,將它們的值合併為更有組織的表示形式。

以上是如何合併具有相同鍵的陣列中的 JavaScript 物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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