2017-08-25 149 views
0

我想合并数组像:合并两个数组中的一个数组(元素需要太多合并)

enter image description here

什么是做到这一点的最短/干净的方式?有减少或地图的方法吗?

PS:绿色阵列将始终具有相同的尺寸

输入

[ 
    [ 
    ["X"], 
    ["A"], 
    ["B"], 
    ["C"], 
    ["D"] 
    ], 
    [ 
    ["Y", "Z"], 
    [1, "M"], 
    [2, "a"], 
    [3, "p"], 
    [4, "?"] 
    ] 
] 

输出,我想

[ 
    ["X", "Y", "Z"], 
    ["A", 1, "M"], 
    ["B", 2, "a"], 
    ["C", 3, "p"], 
    ["D", 4, "?"] 
] 
+1

请参阅[**我如何问一个很好的问题**](https://stackoverflow.com/help/how-to-ask)及(如适用),[ **如何创建一个最小化,完整和可验证的示例**](https://stackoverflow.com/help/mcve) - 请直接在此处发布您的代码,最好在工作代码片段中展示此问题。 – Nope

+0

至少解释一下颜色的含义。 –

+0

颜色只是代表一个数组 –

回答

0

只是映射在所述阵列中的一个,并与其它concat它阵列。

var array1 = [ 
 
    ["1"], 
 
    ["2"], 
 
    ["3"] 
 
]; 
 
var array2 = [ 
 
    ["A", "B"], 
 
    ["R", "S"], 
 
    ["x", "y"] 
 
]; 
 

 
function mergeArrays(arr1, arr2) { 
 
    return arr2.map((item, index) => { 
 
    return arr1[index].concat(item); 
 
    }); 
 
} 
 

 
console.log(mergeArrays(array1, array2));

+0

我只是用一个reduce来替换你的合并数组,以便能够拥有尽可能多的绿色数组,但是这样解决了我的问题谢谢:) –