Javascript, 一般

連番の変数の取り扱い(JS)

連番の変数をつくり、繰り返し処理で値を入れたい時がある。

for (i=0; i<4 ; i++) {
  var "list" + i = i;
}

これを実行すると list が未定義だというエラーが出る。

一般的に使われているのは “eval” で、例えば変数 list0 ~ list5 に連番の値を代入したいときは

for (j=0; j<4 ; j++) {
  eval("var list" + j + "=" + j + 1 + ";");
}

ですが、しかし、eval は使用が非推奨となっているのと、危険なのであまり使いたくない。

“eval” を使いたくない場合は配列を使えば解決できる。

$(function() {
 var spr = [-3.6, -3.1, 0.6, 7.1, 12.4, 16.7,20.5, 22.3, 18.1, 11.8, 4.9, -1.9];
 var temp = [];
 for ( var i = 1; i < 13; i++ ) {
  temp[i] = spr[ i – 1 ];
}

//

console.log( temp[0] ); // -3.6

console.log( temp[7] ); //  22.3

ある地域のある年の毎月の平均気温を初期値として入れ spr0 ~ spr11 各々の値を月ごとの変数:temp[0] ~ temo[11] に代入する。

月々の変数 temp に配列 spr の数値(気温)が代入され1月 temp[1] は年間最低気温、8月 temp[8] は年間最高気温など。