当前位置: 首页 > 面试题库 >

使用相同的键合并数组中的javascript对象

段干昊然
2023-03-14
问题内容

什么是重组的最佳方式array进入output?我需要将所有值键(无论是否为数组)合并到共享相同名称键的对象中

var array = [
    {
        name: "foo1",
        value: "val1"
    }, {
        name: "foo1",
        value: [
            "val2",
            "val3"
        ]
    }, {
        name: "foo2",
        value: "val4"
    }
];

var output = [
    {
        name: "foo1",
        value: [
            "val1",
            "val2",
            "val3"
        ]
    }, {
        name: "foo2",
        value: [
            "val4"
        ]
    }
];

是的,我可以编写无限for循环和介于两者之间的多个数组,但是是否有一个简单的快捷方式?谢谢!


问题答案:

这是一个选择:

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);


 类似资料:
  • 问题内容: 在一个软件中,我将两个数组与函数合并。但是我需要将相同的数组(当然,具有相同的键)添加到现有数组中。 问题: 如您所见,错过了。 那么,如何将 所有这些 具有相同的键合并? 问题答案: 您需要使用而不是。当然,数组中只能有一个等于的键,但是关联的值将是包含和的数组。

  • 所以我有以下 2 个数组,键为 2016 和 现在,在数组合并之后,我应该得到一个具有2个数据键的数组,和,但是我得到了一个具有3个键的数组。 为什么会这样?正常吗? 信息: PHP 5.6.30 (cli) (构建时间: Feb 7 2017 16:18:37) 版权所有 (c) 1997-2016 PHP 组 Zend Engine v2.6.0, 版权所有 (c) 1998-2016 Zen

  • 问题内容: 我有: 我想将其转换为该对象: 在Python中,有一个简单的习惯用法。jQuery或纯Javascript中是否有类似的东西,还是我必须做很长一段路? 问题答案: 简单的JS函数将是: 当然,您实际上也可以实现zip等功能,因为JS支持更高阶的类型,这使这些函数语言主义变得容易:D

  • 本文向大家介绍php中有关合并某一字段键值相同的数组合并的改进,包括了php中有关合并某一字段键值相同的数组合并的改进的使用技巧和注意事项,需要的朋友参考一下 下面是实现代码:

  • 我有一个这样的对象数组: 我希望每个人(名字)都有一个对象,并添加他们的对象。 因此,最终阵列将是: 我使用的真正数组非常大,这就是为什么我正在寻找最有效的方法。