- ベストアンサー
JavaScript初心者がfor文を使って変数を計算する方法
- JavaScript初心者がfor文を使用して複数の変数を計算する方法について教えてください。
- JavaScriptでfor文を使用して変数を計算する方法について教えてください。
- JavaScriptのfor文で複数の変数を計算する方法について教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>配列を使わないと無理でしょうか? 例を3つ (1)配列など使わない場合 <script> var x1=1; var x2=2; var x3=3; var x4=4; var x5=5; var y1=1; var y2=2; var y3=3; var y4=4; var y5=5; var z1; var z2; var z3; var z4; var z5; for(var i=1;i<=5;i++){ eval("z"+i+"=x"+i+"+y"+i); } document.write(z1); document.write(z2); document.write(z3); document.write(z4); document.write(z5); </script> (2)配列を使う場合 <script> var x=[1,2,3,4,5]; var y=[1,2,3,4,5]; var z=[]; for(var i in x){ z[i]=x[i]+y[i]; } document.write(z[0]); document.write(z[1]); document.write(z[2]); document.write(z[3]); document.write(z[4]); </script> (3)オブジェクト(連想配列?)を使う場合 <script> var x={"1":1,"2":2,"3":3,"4":4,"5":5}; var y={"1":1,"2":2,"3":3,"4":4,"5":5}; var z={}; for(var i in x){ z[i]=x[i]+y[i]; } document.write(z[1]); document.write(z[2]); document.write(z[3]); document.write(z[4]); document.write(z[5]); </script> 以上、普通の配列を使う場合がイメージしやすいし処理が一番わかりやすいからです 余り良い例ではないですが、たとえばx12となった場合、xの12なのかx1の2なのかわからないですよね 配列はlengthをもつのでforのループでカウンタを使いやすいですが 配列の性質上0から始まる連番で管理されるので運用で気をつける必要があります オブジェクトを使う場合はinを使った方が楽ですが、逆にカウンタを使う処理は 順番や連番が保証されないため、管理が面倒になります 必要にあわせて使い分けてください
その他の回答 (2)
- fujillin
- ベストアンサー率61% (1594/2576)
まさにご質問のような処理をするために、配列や連想配列が考案されているのではないでしょうか? わざわざ、evalを用いようとするのは方法として好ましいとは思えません。 変数名と文字列を混同なさっているようですが、別物ということを理解するのがまず大切かと思います。 また、No 2様の回答の配列や連想配列の例をご覧になって、効率的な記述法であることを理解してください。 No 2様が書き忘れた追加の例として、例(1-2)を… (ただし、この方法も、決してお勧めできるものではありません。evalと似たりよったりかな?) for(var i=1;i<=5;i++){ window["z"+i] = window["x"+i] + window["y"+i]; }
お礼
ありがとうございます。配列でやるようにします。変数名と文字列のことも調べてみます。
- yambejp
- ベストアンサー率51% (3827/7415)
evalは最終手段なので、配列を使う気はありませんか?
お礼
ありがとうございます。参考になります。
補足
こういう場合は、配列ですか。調べてみます。もし、配列を使わないと無理でしょうか?調べているなかでもevalはお勧めではないような内容があったのですが、なぜですか。続けての質問ですが、よろしくお願いします。
お礼
ありがとうございます。 配列でやってみます。 たくさんの例を作っていただき、とても分かりやすかったです。