首頁 >web前端 >js教程 >如何合併 JavaScript 陣列中具有相同「名稱」鍵的對象,並將它們的「值」鍵合併到一個陣列中?

如何合併 JavaScript 陣列中具有相同「名稱」鍵的對象,並將它們的「值」鍵合併到一個陣列中?

DDD
DDD原創
2024-10-29 02:25:29757瀏覽

How can you merge objects in a JavaScript array with the same

在JavaScript 中使用共享鍵合併數組中的物件

問題陳述

問題陳述

考慮一個數組對於對象,其中每個對像都有一個“name”鍵。具有相同“名稱”的物件共享值。任務是透過合併所有具有相同「名稱」的物件的「值」鍵來重新組織陣列。

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

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>

將數組中的物件與相同的「名稱」鍵,您可以使用以下方法:

[
  {
    name: "foo1",
    value: ["val1", "val2", "val3"]
  },
  {
    name: "foo2",
    value: ["val4"]
  }
]
此解決方案迭代輸入數組,搜尋具有相同“名稱”鍵的現有對象,並附加“值”當前對像到現有對象的“值”。如果不存在現有對象,它將目前對像新增至輸出數組。 此操作的結果是一個物件數組,其中具有相同「name」鍵的物件將其「value」鍵合併到一個數組。

以上是如何合併 JavaScript 陣列中具有相同「名稱」鍵的對象,並將它們的「值」鍵合併到一個陣列中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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