2016-10-08 2 views
2

var array = [["one", "1"], ["two", "2"], ["three", "3"]]にこれらの配列を有効にする方法JavaScriptで2つの線形配列を2次元配列にマージするにはどうすればよいですか?たとえば

var array1 = ["one", "two", "three"]; 
var array2 = ["1", "2", "3"]; 

+2

これは、一般に "ジッパー" btwと呼ばれます。 – Carcigenicate

+1

この簡単なタスクを達成するために 'for'ループを使用してください –

+2

この質問はあなたのために良い答えがあります:http://stackoverflow.com/q/4856717/2544762 –

答えて

7
var array1 = ["one","two","three"], 
    array2 = ["1","2","3"], 
    newarray = array1.map(function(c, i) { return [ c, array2[i] ] }); 

alert(JSON.stringify(newarray)); 

これは、両方の配列の長さが常に等しいことを前提としています。

https://jsfiddle.net/ddtybvo6/

+0

はい、両方の配列の長さは常に等しいです。 –

+0

このソリューションは、2つ以上の入力に容易に拡張できません。 –

0

あなたはzip機能をunderscoreを使用することができます。

var array1 = ["one", "two", "three"]; 
var array2 = ["1", "2", "3"]; 

_.zip(array1, array2); 
// [["one", "1"], ["two", "2"], ["three", "3"]] 

ジップ

対応で値を持つアレイ のそれぞれの値を一緒にマージポジション。一致する配列 インデックスを使用して調整された別々のデータソース がある場合に役立ちます。適用時に配列の配列を渡すために使用します。ネストされた配列の行列を操作する の場合、これを使用して 行列を転置することができます。

_.zip(['moe', 'larry', 'curly'], [30, 40, 50], [true, false, false]); 
=> [["moe", 30, true], ["larry", 40, false], ["curly", 50, false]] 
関連する問題