2017-05-06 7 views
0

Javascriptを使いこなすようになったので、これが基本的な質問であればごめんなさい。Javascriptは動的に配列から変数を作成します

keys = ['fruits','vegetables','fats','meats'] 

配列内のこれらの各要素のマップを動的に作成したい(この配列の長さが変わる可能性があります)。 私はこのような何かをしようとしています。出力

for (var i=0; i<keys.length; i++) { 
    map_name = keys[i]; 
    var map_name = new Map(); 
    map_name.set('foo','bar'); 
} 
console.log(fruits) 

:果物は

が定義されていない私は、動的この間もすることができることを作成できるようにするには、構文のいくつかの種類を探してみましたグローバルに作成されたマップにアクセスできますが、解決策が見つからないようです。

ありがとうございました!

+0

希望のマップの例も追加してください。キーはありますが、値はありません。 –

+0

こんにちはニーナ、jsonファイル – tokatokeari

+0

から各キーの値を取得しますが、あなたが持っているものと望むものの例を追加できますか? –

答えて

0

変数名を動的に作成しようとするのは悪い考えです。代わりに、マップを使用してください:

var keys = ['fruits','vegetables','fats','meats']; 
 

 
var things = new Map(); 
 
for (var i=0; i<keys.length; i++) { 
 
    var map_name = keys[i]; 
 
    var map_value = new Map(); 
 
    map_value.set('foo', 'bar'); 
 
    things.set(map_name, map_value); 
 
} 
 

 
console.log(things.get('fruits').get('foo'));

-1

あなたは「果物のように、単に直接変数名を使用してアクセスすることができ、ウィンドウオブジェクトのプロパティとしてあなたの鍵を設定することにより、この

keys = ['fruits','vegetables','fats','meats'] 

for (var i=0; i<keys.length; i++) { 
    map_name = keys[i]; 
    window[map_name] = new Map(); 
    window[map_name].set('foo','bar'); 
} 

console.log(fruits) 

を試してみてください'

しかし実際には、ウィンドウオブジェクトにプロパティを追加することはお勧めしません。そのためにあなた自身のオブジェクトを使うべきです。

関連する問題