首頁  >  文章  >  web前端  >  如何將共享相同鍵的 JavaScript 物件合併到陣列中?

如何將共享相同鍵的 JavaScript 物件合併到陣列中?

Patricia Arquette
Patricia Arquette原創
2024-11-02 02:55:02819瀏覽

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

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

要有效地組合共享公共鍵的JavaScript 物件的陣列內容,一個可靠的解決方案包括:

  1. 識別現有元素: 首先迭代數組,使用過濾器方法隔離具有指定鍵的每個物件。例如:
<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;
  });</code>
  1. 合併值: 如果找到匹配的對象,則確定其索引,並將值附加到現有對象的值數組中:
<code class="javascript">if (existing.length) {
    var existingIndex = output.indexOf(existing[0]);
    output[existingIndex].value = output[existingIndex].value.concat(item.value);</code>
  1. 新增物件: 如果遇到沒有符合物件的鍵,則會將其作為新物件加入輸出陣列:
<code class="javascript">} else {
    if (typeof item.value == 'string')
      item.value = [item.value];
    output.push(item);</code>

透過執行下列步驟,可以將提供的陣列重新組織為所需的輸出,並將與特定鍵關聯的所有值合併到陣列中的單一物件中。

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

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