首页 >web前端 >js教程 >如何合并具有相同键的数组中的 JavaScript 对象?

如何合并具有相同键的数组中的 JavaScript 对象?

Linda Hamilton
Linda Hamilton原创
2024-10-29 18:54:02167浏览

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