Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.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_Array Merge_Array Combine - Fatal编程技术网

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版本中工作@马希尔·阿里