如何在对象内部合并对象

时间:2019-01-14 21:03:23

标签: javascript arrays object

我有一个数组

  var input = [["group1","group2","group3" ], ["group1", "group5" ]]

我想像这样合并两个对象:

  ["group1","group2","group3", "group1", "group5" ]

我试图将两个对象合并到一个数组中,但是我找不到答案。 任何帮助,将不胜感激。

6 个答案:

答案 0 :(得分:3)

我对js不太熟悉,但是不能用类似的东西连接两个数组

var merged = input[0].concat(input[1]);

答案 1 :(得分:2)

您可以像这样使用concat()

const input = [
  ["group1", "group2", "group3"],
  ["group1", "group5"]
];

const output = [].concat.apply([], input);

console.log(output);

或者,Array.prototype.flat()

const input = [
  ["group1", "group2", "group3"],
  ["group1", "group5"]
];

const output = input.flat(1);

console.log(output);

如果这是“硬”数据,并且不会改变,则可以使用更简单的concat()操作:

const input = [
  ["group1", "group2", "group3"],
  ["group1", "group5"]
];

const output = input[0].concat(input[1]);

console.log(output);

答案 2 :(得分:1)

您可以使用concat函数来组合数组。

const resultArr = [];

input.forEach(curr => {
  resultArr.concat(curr);
});

答案 3 :(得分:0)

您正在谈论“扁平化阵列” ...

const flatten = (array) => {
  return array.reduce((flat, toFlatten) => {
    return flat.concat(Array.isArray(toFlatten) ? flatten(toFlatten) : toFlatten);
  }, []);
}
console.log(flatten([[1,2,[3]],4])); 

答案 4 :(得分:0)

ES5

array.reduce(function(a, x) { return a.concat(x); }, []);

ES6

array.reduce((a, x) => a.concat(x), []);

答案 5 :(得分:0)

您可以采用多种方法,我最喜欢的是使用reduce方法将二维数组转换为一个平面数组,它看起来像这样:

function reducer(final_flat_array, inputItem) {
    return [...final_flat_array, ...inputItem]
};
let flat_array = input.reduce(reducer, []);

或更准确的说是:

let flat_array = [];
input.forEach(item => flat_array.push(item);