Javascript 按索引值和数组中的不同值合并两个数组
我有两个数组,我想将两个数组的值合并到一个数组中,但两个数组的值不同 例如:Javascript 按索引值和数组中的不同值合并两个数组,javascript,arrays,array-merge,array-combine,Javascript,Arrays,Array Merge,Array Combine,我有两个数组,我想将两个数组的值合并到一个数组中,但两个数组的值不同 例如: var arr1 = [ { data1: 1 ,data2: "value1"}, { data1: 1 ,data2: "value2"}, { data1: 2, data2: "value3"}, { data1: 3 ,data2: "value3"}, { data1: 3 ,data2:
var arr1 = [
{ data1: 1 ,data2: "value1"},
{ data1: 1 ,data2: "value2"},
{ data1: 2, data2: "value3"},
{ data1: 3 ,data2: "value3"},
{ data1: 3 ,data2: "value3"}
];
var arr2 = [
{ data1:1, data3:"val1"},
{ data1: 1, data3: "val2"},
{ data1: 2, data3: "val1"},
{ data1: 3, data3: "val1"},
{ data1: 3, data3: "val2"}
];
var arr3 = [
{ data1:1, data2: "value1", data3:"val1"},
{ data1: 1, data2: "value2", data3: "val2"},
{ data1: 2, data2: "value3", data3: "val1"},
{ data1: 3, data2: "value3", data3: "val1" },
{ data1: 3, data2: "value3", data3: "val2" }
];
我尝试了这个方法,当data1是唯一的时,它可以正常工作,但问题是当data1重复时,它会合并第一个值:
var data = _.map(arr1, function(item){
return _.extend(item, _.findWhere(arr2, { dataid: item.dataid }));
});
可以使用映射并合并同一索引上第一个和第二个数组的属性
var arr1=[{data1:1,data2:value1},{data1:1,data2:value2},{data1:2,data2:value3},{data1:3,data2:value3},{data1:3,data2:value3}];
var arr2=[{data1:1,data3:val1},{data1:1,data3:val2},{data1:2,data3:val1},{data1:3,data3:val1},{data1:3,data3:val2}];
常量res=arr1.mapx,i=>{…x,…arr2[i]};
console.LogRes要按索引还是按数据1合并?如果到了最后一个,您如何区分相同的值?可能重复,请注意:您的第一个代码段中有一些语法错误。我修复了拼写错误,并通过@Maheer Aliyes的问题解决了它在我的代码中运行良好@Maheer,但它在NodeJS6.0版本中工作@马希尔·阿里