Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在对象内部合并对象_Javascript_Arrays_Object - Fatal编程技术网

Javascript 如何在对象内部合并对象

Javascript 如何在对象内部合并对象,javascript,arrays,object,Javascript,Arrays,Object,我有一个数组 var input = [["group1","group2","group3" ], ["group1", "group5" ]] 我想合并两个对象,如下所示: ["group1","group2","group3", "group1", "group5" ] function reducer(final_flat_array, inputItem) { return [...final_flat_array, ...inputItem] }; let fla

我有一个数组

  var input = [["group1","group2","group3" ], ["group1", "group5" ]]
我想合并两个对象,如下所示:

  ["group1","group2","group3", "group1", "group5" ]
function reducer(final_flat_array, inputItem) {
    return [...final_flat_array, ...inputItem]
};
let flat_array = input.reduce(reducer, []);
我试图将两个对象合并到一个数组中,但是,我无法得到答案。
任何帮助都将不胜感激

我对js不太熟悉,但是你不能用类似于

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

你说的是“整平阵列”

const flatten = (array) => {
  return array.reduce((flat, toFlatten) => {
    return flat.concat(Array.isArray(toFlatten) ? flatten(toFlatten) : toFlatten);
  }, []);
}
console.log(flatten([[1,2,[3]],4])); 
您可以像这样使用concat:

常量输入=[ [第1组、第2组、第3组], [第一组,第五组] ]; 常量输出=[].concat.apply[],输入; console.logoutput ES5

ES6


可以使用concat函数组合数组

const resultArr = [];

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

您可以采取多种方法,我最喜欢的方法是使用reduce方法将二维数组转换为一个平面数组,它如下所示:

  ["group1","group2","group3", "group1", "group5" ]
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);

不,您不需要:您想要连接数组,而不是合并对象。为了连接数组,有一个内置的函数。这叫做展平。这应该可以很好地工作。回答得好,很有效!谢谢: