2017-08-25 105 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來替換你的合併數組,以便能夠擁有儘可能多的綠色數組,但是這樣解決了我的問題謝謝:) –