2014-04-12 72 views
-3

我想將兩個不同的數組連接成一個。例如,我們有兩個數組JavaScript鏈接陣列

var x = [1,2,3,4,5,6,7,8,9]; 
y = [5,4,8,5,5,5,5,5,5]; 

我有興趣到GET數組

var xyAr = [[1, 5], [2, 4], [3, 8]...]; 
+1

'XY = x.map(函數(項目,i)的{返回[項目,值Y [i]]; });' –

+1

'x.map(function(el,i){return [el,y [i]];})'但是你真的不知道自己不這樣做。 –

回答

4

調用此功能在其他語言zip並且可以在JS就像這樣:

function zip(a, b) { 
    return a.map(function(x, i) { 
     return [x, b[i]]; 
    }); 
} 

http://jsfiddle.net/kQuuz/

這是一個接受變量nu的參數MBER:

function zip() { 
    var args = [].slice.call(arguments, 0); 
    return args[0].map(function(_, i) { 
     return args.map(function(a) { return a[i] }) 
    }); 
} 

使用方法如下:

zip(array1, array2, array3) 
+2

「zip」通常不接受可變數量的參數嗎? –

+0

@NiettheDarkAbsol:謝謝你的建議,我添加了一個可變參數版本。 – georg

+0

你不需要可變參數。 OP說:「我想將2個不同的陣列連接成一個。」如果你正在寫圖書館,我會同意你的意見,但在這種情況下,你只是增加了一個毫無意義的複雜功能。 –