我有一个数组
var input = [["group1","group2","group3" ], ["group1", "group5" ]]
我想像这样合并两个对象:
["group1","group2","group3", "group1", "group5" ]
我试图将两个对象合并到一个数组中,但是我找不到答案。 任何帮助,将不胜感激。
答案 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);