首页  >  文章  >  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