Javascript合并到数组中,在某些索引处具有相同的值

Javascript合并到数组中,在某些索引处具有相同的值,javascript,arrays,merge,Javascript,Arrays,Merge,我有两个要合并的数组,但如果第一个数组的索引0处的值与第二个数组的索引0处的值相同,则必须在同一个数组中。 更多详情: 阵列1: 阵列2: var arr2 [ ["999974", 1], ["SP.SAMBACR803805", 1], ["SP29193", 1], ["SP29372", 4], ["SP324035", 3] ] 如您所见(在本例中),第一个数组有另一个

我有两个要合并的数组,但如果第一个数组的索引0处的值与第二个数组的索引0处的值相同,则必须在同一个数组中。 更多详情: 阵列1:

阵列2:

 var arr2  [
    ["999974",           1],
    ["SP.SAMBACR803805", 1],
    ["SP29193",          1],
    ["SP29372",          4],
    ["SP324035",         3]
]
如您所见(在本例中),第一个数组有另一个4个数组和3个项目,第二个5个数组和2个项目。 arr1[3][0]([“SP324035”,194110.0231])等于arr2[4][0]([“SP324035”,1])

所以我不知道热能不能达到这样的效果:

var arrfinal = [
   ["SP.22110000295",     1,      162.9, null], // arr1 index 0 **is not** in arr2 index 0
   ["SP29372",            1,     1061.6,    4], // arr1 index 0 **is** in arr2 index 0
   ["SP3204200014",       5,     1147.5, null], // arr1 index 0 **is not** in arr2 index 0
   ["SP324035",           1, 94110.0231,    3], // arr1 index 0 **is** in arr2 index 0
   ["999974",          null,       null,    1], // arr2 index 0 **is not** in arr1 index 0
   ["SP.SAMBACR803805",null,       null,    1], // arr2 index 0 **is not** in arr1 index 0
   ["SP29193",         null,       null,    1]  // arr2 index 0 **is not** in arr1 index 0
];
实际上,它不是真正的合并,因为只有索引0的值等于的数组被合并,其他数组则是拼接

我试过合并,展开拼接。。。下划线,jquery

有什么提示吗

非常感谢,,
Geo

我从你的问题中了解到,你有两个数组,
arr1
arr2
,你想生成一个新数组,
arrfail
,条件如下

  • 应将
    arr1
    中的项目复制到
    arrfinal
  • 如果对于某些i,j存在一个
    arrfinal[i][0]==arr2[j][0]
    ,则索引
    1
    中的
    arr[2][j]
    项应出现在
    arrfinal[i]
  • 如果没有出现这种情况,请将一个新数组推送到
    arrfinal
    ,索引
    0
    arr2[j][0]
    并由
    null
    s填充,然后再追加
    arr2[j]
  • arrfinal
    中的所有项目应具有相同的长度
  • var arrfinal=[],
    key_map={},
    最大长度1=0,
    最大长度2=0,
    i、 j;
    对于(i=0;i<1.length;++i){
    max_len_1=Math.max(max_len_1,arr1[i].length);//查找arr1的最大长度
    arrfinal.push(arr1[i].slice());//复制到final
    key_map[arr1[i][0]=arrfinal.length-1;//以后的映射
    }
    对于(i=0;i

    但是,应注意,例如,如果存在多个在索引
    0
    per
    arr1
    arr2
    处具有相同值的项目,则这可能会产生意外结果

    var arr1 = [
        [ 'foo',      1],
        ['fizz', 'buzz']
    ];
    var arr2 = [
        ['foo', 'bar']
        ['foo', 'baz']
    ];
    
    会导致

    [
        [ 'foo',      1, 'bar', 'baz'],
        ['fizz', 'buzz',  null       ]
    ]
    

    此外,如果保证这些是唯一的,那么也许你应该考虑使用对象而不是数组

    非常感谢。这很有效。同时,我发现了另一个同样结果的方法。非常感谢。
    [
        [ 'foo',      1, 'bar', 'baz'],
        ['fizz', 'buzz',  null       ]
    ]