JavaScriptで、変数名を動的に生成したい
直接的にはできないが、オブジェクトのプロパティを使用して同様のことを行うことができる。
let obj = {};
for (let i = 0; i < 10; i++) {
obj['key' + i] = i;
}
objという名前の空のオブジェクトを作成し、ループ内でkey0からkey9までのプロパティを動的に追加しています。各プロパティの値は、そのキーの末尾の数字と同じです。つまり、key0の値は0、key1の値は1、というようになります。
このオブジェクトのプロパティは、以下のようにアクセスできます:
console.log(obj.key0); // 0
console.log(obj.key1); // 1
// ...
console.log(obj.key9); // 9
または、
console.log(obj['key0']); // 0
console.log(obj['key1']); // 1
// ...
console.log(obj['key9']); // 9
これらの方法を使用すれば、JavaScriptでkey0=0、key1=1、…といった動的な変数を作成することができます。ただし、これらの"変数"は実際にはobjオブジェクトのプロパティであることを覚えておいてください。このため、objオブジェクトを介さないとアクセスできません。