将2个数组合并为一个数组Javascript

将2个数组合并为一个数组Javascript,javascript,arrays,object,variables,Javascript,Arrays,Object,Variables,我已经创建了2个数组,我想将对象数组合并成一个数组,填充所有列 例如: var array = [{"first_name":"John", "Last Name":"Doe", "age":46}, {"first_name":"Tim", "Last Name":"Jones", "age":26}, {"first_name":"Marcus", "Last Name":"Brown", "age":31}, {"first_name":"Paul", "Last Name":"Danie

我已经创建了2个数组,我想将对象数组合并成一个数组,填充所有列 例如:

var array = [{"first_name":"John", "Last Name":"Doe", "age":46}, {"first_name":"Tim", "Last Name":"Jones", "age":26}, {"first_name":"Marcus", "Last Name":"Brown", "age":31}, {"first_name":"Paul", "Last Name":"Daniels", "age":28}, {"first_name":"Samantha", "Last Name":"Williams", "age":32 }];

var array2 = [{"first_namee":"John", "Last Name":"Doe", "age":46, "height": "65"}, {"first_name":"Tim", "Last Name":"Jones", "age":26, "height": "58"}, {"first_name":"Marcus", "Last Name":"Brown", "age":66, "height": "69"}, {"first_name":"Paul", "Last Name":"Daniels", "age":28, "height": "72"}];

我想将两个对象数组合并为一个,如下所示:

var arrayMerge = [{"first_name":"John", "Last Name":"Doe", "age":46, "height": "65"}, {"first_name":"Tim", "Last Name":"Jones", "age":26, "height": "58"}, {"first_name":"Marcus", "Last Name":"Brown", "age":66, "height": "69"}, {"first_name":"Paul", "Last Name":"Daniels", "age":28, "height": "72"}, {"first_name":"Samantha", "Last Name":"Williams", "age":32, "height": ""}];

对于这两个数组,我尝试了concat和merge,它将两个数组放在一个数组中,而不首先将所有列放在一个数组中,假设对象在数组中的顺序相同,您可以映射到第一个数组,并使用
object.assign()为数组元素生成一个新对象
将两个对象合并在一起

像这样:

const mergeArraysOfObjects = (arr1, arr2) =>
  arr1.map((obj1, idx) => Object.assign({}, obj1, arr2[idx]))
也可以使用新的对象扩展操作符:

const mergeArraysOfObjects = (arr1, arr2) =>
  arr1.map((obj1, idx) => ({ ...obj1, ...arr2[idx] }))

首先,假设对象在数组中的顺序相同,您可以映射第一个对象,并通过使用
object.assign()
将两个对象合并在一起,为数组元素生成一个新对象

像这样:

const mergeArraysOfObjects = (arr1, arr2) =>
  arr1.map((obj1, idx) => Object.assign({}, obj1, arr2[idx]))
也可以使用新的对象扩展操作符:

const mergeArraysOfObjects = (arr1, arr2) =>
  arr1.map((obj1, idx) => ({ ...obj1, ...arr2[idx] }))

一个不太灵活的选项是使用ES6 spread运算符,然后,您可以填写差异:

let array=[{“first_name”:“John”,“Last name”:“Doe”,“age”:46},{“first_name”:“Tim”,“Last name”:“Jones”,“age”:26},{“first_name”:“Marcus”,“Last name”:“Brown”,“age”:31},{“first_name”:“Paul”,“Last name”:“Daniels”,“age”:28},{“first_name”:“Samantha”,“Last name”:“Williams”,“age”:32};
让数组2=[{“名字”:“约翰”,“姓氏”:“多伊”,“年龄”:46,“身高”:“65”},{“名字”:“蒂姆”,“姓氏”:“琼斯”,“年龄”:26,“身高”:“58”},{“名字”:“马库斯”,“姓氏”:“布朗”,“年龄”:66,“身高”:“69”},{“名字”:“保罗”,“姓氏”:“丹尼尔斯”,“年龄”:28,“身高”:“72”};
让mergedArray=[…数组,…数组2]
mergedArray.map(项=>{
如果(!项目高度){
item.height=“”
}
})

console.log(mergedArray)
一个不太灵活的选项是使用ES6 spread运算符,然后,您可以填写差异:

let array=[{“first_name”:“John”,“Last name”:“Doe”,“age”:46},{“first_name”:“Tim”,“Last name”:“Jones”,“age”:26},{“first_name”:“Marcus”,“Last name”:“Brown”,“age”:31},{“first_name”:“Paul”,“Last name”:“Daniels”,“age”:28},{“first_name”:“Samantha”,“Last name”:“Williams”,“age”:32};
让数组2=[{“名字”:“约翰”,“姓氏”:“多伊”,“年龄”:46,“身高”:“65”},{“名字”:“蒂姆”,“姓氏”:“琼斯”,“年龄”:26,“身高”:“58”},{“名字”:“马库斯”,“姓氏”:“布朗”,“年龄”:66,“身高”:“69”},{“名字”:“保罗”,“姓氏”:“丹尼尔斯”,“年龄”:28,“身高”:“72”};
让mergedArray=[…数组,…数组2]
mergedArray.map(项=>{
如果(!项目高度){
item.height=“”
}
})

console.log(mergedArray)
按“列”你指的是对象键吗?是的,我的意思是这不是一个非常简单的操作。你必须先决定几件事。1.如何将对象标识为唯一的?名字?最后的二者都和年龄?等2.哪个阵列是真实的
array
的值少于
array2
,如果
array2
的年龄不同怎么办?它应该保留哪一个?所以目标是将所有对象键合并到一个数组中。因为唯一不同的是高度,如果在没有高度的数组2中有一个新人,我想通过“列”将它们合并在一起。你指的是对象键吗?是的,这就是我的意思。这不是一个非常简单的操作。你必须先决定几件事。1.如何将对象标识为唯一的?名字?最后的二者都和年龄?等2.哪个阵列是真实的
array
的值少于
array2
,如果
array2
的年龄不同怎么办?它应该保留哪一个?因此目标是将所有对象关键点合并到一个数组中。因为唯一不同的是高度,如果在没有高度的数组2上,则需要一个新人,我希望将它们合并在一起