2017-07-05 7 views
-2

方法Iは、2つの配列をマージし、すべてに配列Bの値を割り当てることができ、アレイから[X]このような:二つの配列をマージし、割り当てる値

var areas = []; 
var values = []; 
values[0] = "aaa"; 
values[1] = "bbb"; 
areas[0] = ["A","B","C"]; 
areas[1] = ["D","E","F"]; 

と期待値は次のようになります

array_three[0] = ["A" => "aaa","B" => "aaa", "C" => "aaa"]; 
array_three[1] = ["D" => "bbb","E" => "bbb", "F" => "bbb"]; 

mapまたはforEachを使用する必要がありますか?このような

+0

A単純な 'for'ループ? –

+3

これまでに何を試しましたか? – Li357

答えて

1

使用mapreduce

var areas = [ 
 
    ["A","B","C"], 
 
    ["D","E","F"] 
 
]; 
 
var values = ["aaa", "bbb"]; 
 

 
var result = values.map(function(value, i) { 
 
    return areas[i].reduce(function(obj, area) { 
 
    obj[area] = value; 
 
    return obj; 
 
    }, {}); 
 
}); 
 

 
console.log(result);

あるいはまもなくES6の矢印の機能を使用して:

var areas = [ 
 
    ["A","B","C"], 
 
    ["D","E","F"] 
 
]; 
 
var values = ["aaa", "bbb"]; 
 

 
var result = values.map((value, i) => areas[i].reduce((obj, area) => (obj[area] = value, obj), {})); 
 

 
console.log(result);

+1

'return'がありません – charlietfl

関連する問題