Javascriptで自動的に配列を追加する
自動的に変数に名前をつけて配列を作りたい。
そう思っていたら、こういう書き方を見つけた。
var i;
for (i = 0; i < 10; i++) {
eval("var name" + i + "=" + i + ";");
}
これを実行すると、以下のように変数と値が定義される。
name0 = 0
name1 = 1
name2 = 2
・
・
・
name9 = 9
つまりこれを使えば配列も定義できるわけですね。
ちなみに、私が作りたいコードは入力された文字列を使って配列名を作り、配列内には現在の時刻(Hours)を入れるというもの。
実際にはこんなコードを書いてみました。
function(text){
DD = new Date();
Hours = DD.getHours();
eval("var nyu"+text+" = [" + Hours + "];");
return eval("nyu"+text+" [0];");
}
return値としてきちんと現在の時刻が返ってきました。
このコードだと、新しく作った変数を使うときは毎回eval関数を使う必要がありますね。
この場合だと日本語が変数名に入ってくる可能性もあるんですが、変数名として日本語も使えるみたいですがあまり推奨はされてないようですね。