2017-06-27 16 views
-3

複数の配列を1つのjsonにマージして値を追加する必要がありますが、固まってしまいます。
私はこれがあります。Javascript - 配列をjsonにマージする

var areas = []; 
    areas[0] = []; 
    areas[1] = ["DE"]; 
    areas[2] = ["PL","BE","FR",]; 
    areas[3] = ["US"]; 

を、私は、この必要があります。だから私は配列をマージし、キーの値として「#1 e6f2cc」を追加する必要が

values: { 
    'DE': '#e6f2cc', 
    'US': '#e6f2cc', 
}, 

を。
これを行うには速い方法がありますか?私はJSプロではない。私はそれをマージすることができたが、私はこれに価値を追加することに失敗した。
ありがとうございます!

+0

ある[JSONとオブジェクトリテラル表記の違いは何ですか?](https://stackoverflow.com/questions/2904131/what-is-the -difference-json-and-object-literal-notation) – Andreas

+1

そして、どの論理によってそれらの2つだけがそのようなカラーコードが割り当てられますが、エリア[2]の下の値はありませんか? – CBroe

答えて

1

例えば

var areas = []; 
 
areas[0] = []; 
 
areas[1] = ["DE"]; 
 
areas[2] = ["PL", "BE", "FR", ]; 
 
areas[3] = ["US"]; 
 

 
var merged = areas.reduce(function(obj, arr) { 
 
    arr.forEach(function(value) { 
 
    obj[value] = '#e6f2cc'; 
 
    }); 
 
    return obj; 
 
}, {}); 
 

 
console.log(merged);

ような何か。

出力(mergedの値)

{ DE: '#e6f2cc', 
    PL: '#e6f2cc', 
    BE: '#e6f2cc', 
    FR: '#e6f2cc', 
    US: '#e6f2cc' } 
関連する問題