2.配列/evalを使いこなせ |
まず思いつくのは、if 文をいくつも並べる方法でしょう。
var stage=0;
function stagedisp(){
if(stage==0) name="高尾";
if(stage==1) name="八王子";
if(stage==2) name="立川";
if(stage==3) name="国分寺";
if(stage==4) name="四ッ谷";
if(stage==5) name="御茶ノ水";
if(stage==6) name="神田";
if(stage==7) name="東京";
}
function stageclear(){
stage++;
}
|
var stage=0;
var eki=new Array(8);
eki[0]="高尾";eki[1]="八王子";eki[2]="立川";eki[3]="国分寺";
eki[4]="四ッ谷";eki[5]="御茶ノ水";eki[6]="神田";eki[7]="東京";
function stagedisp(){
if(stage<8) name=eki[stage];
}
function stageclear(){
stage++;
}
|
配列は変数と同様に代入などができますが、何番目の配列に対して代入を行うか記述しておかなくてはいけません。eki[0]="高尾"; の[0]の部分です。eki="高尾"; とすると配列の中身がおかしくなります。
[ ] の中身は整数とは限りません。変数を入れる事もできます(ただし、変数の中身は整数です)。上の例では[stage]とすることで、stageの中身が0(初期値)〜7の間は、「変数 stage の中身」番目の配列を表示させる事ができます。
また、eki=new Array(8); だけでは、eki[0] の中身は初期化されていません(0とは限りません)。そのため、配列を宣言した後はすぐに配列の中身に代入をしてください。eki=new Array(8); の直後に name=eki[stage]; とするとエラーになる事があります。
上の例では配列のありがたさはあまり分かりません。しかし、例えば駅の一覧を表示したいときは
var stage=0;
var eki=new Array(8);
eki[0]="高尾";eki[1]="八王子";eki[2]="立川";eki[3]="国分寺";
eki[4]="四ッ谷";eki[5]="御茶ノ水";eki[6]="神田";eki[7]="東京";
function output_ichiran(){
ichiran="";
for(i=0;i<8;i++) ichiran+=eki[i]+"\n";
alert(ichiran);
}
|
document.form1.elements[3].value=message;
document.images[0].src=hand0.src;
これも [ ] で囲っているので配列の一種です。上では form1 の「3番目」のフォーム部品の値に代入する、下では「0番目」の画像を書き換えるという意味です。
配列なので、当然 for 文も使えます。
total=0; for(i=0;i<5;i++) total+=document.form1.elements[i].value; alert(total); |
for(i=1;i<10;i++){
msg=eval("Math.sqrt("+i+")");
alert(msg);
}
|
<script language="JavaScript">
function imgload(){
pl1=new Image(20,20);pl1.src="pl4.gif";
pl2=new Image(20,20);pl2.src="pl2.gif";
pl3=new Image(20,20);pl3.src="pl1.gif";
pl4=new Image(20,20);pl4.src="pl3.gif";
for(i=1;i<=6;i++) document.images[31+i].src=eval("logo"+i+".src");
for(i=7;i<=12;i++) document.images[45+i].src=eval("logo"+i+".src");
loadFlag=true;
gameFlag=true;
}
</script>
<body onLoad="imgload();" bgcolor="#DAFFDA">
... |