2017-03-23 13 views
2

私の質問のタイトルが奇妙に見えますが、そのような質問をする方法はわかりませんでした。私はこのようなreturn文を持って、私は2 arraysjavascriptで2つの異なる値を割り当てるために2つの配列を使用する

a = [1,2,3] 

そして

b = ["gf","gdf","gdf"] 

を持って

は:

return { 
    options: a.map(value => ({ label: value, value: value })) 
}; 

しかし、私はの値を取るオプション内の値が欲しいですb配列はa配列ではありません。これを行う方法?

+0

予想される結果が何であるかを示すことができますあなたがしようとしているもの。 – rasmeister

答えて

5

map()は2番目のパラメータをインデックスに渡し、それを使用してbの要素を取得します。

var a = [1,2,3], b = ["gf","gdf","gdf"] 
 

 
var options = a.map(function(value, index) { 
 
return { label: value, value: b[index] } 
 
}) 
 

 
console.log(options)

あなたはES6と矢印機能を使用したい場合は、このように同じ結果を得ることができます。

var a = [1,2,3], b = ["gf","gdf","gdf"] 
 

 
var options = a.map((v, i) => ({label: v, value: b[i]})) 
 
console.log(options)

2

複数のアレイを横切って反復mapn関数を記述し、その引数の配列のそれぞれから採取された関数を呼び出すことができる:

a = [1,2,3] 
 
b = ["gf","gdf","gdf"] 
 
    
 
function mapn(arrays, fn) { 
 
    return arrays[0].map((_, i) => fn(...arrays.map(array => array[i]))); 
 
} 
 

 
console.log(mapn([a, b], (label, value) => ({label, value})));

関連する問題