ループ
「配列」で紹介した配列型の複数から成るデータを効率よく処理するために、ループ機能がプログラミング言語には備わっており、JavaScriptもその例外ではありません。
配列をループしてみる bookmark
配列のすべての要素にアクセスして何かする時は次のようにします。
配列を使うプログラムサンプル bookmark
var hairetu = [34,65,1256,12356,12,523]; var sum = 0; var i = 0; for (i=0; i<hairetu.length; i++) { sum += hairetu[i]; } document.write("合計:"+sum);
プログラムの解説 bookmark
上記プログラムは、配列で定義された値のリストを合計して画面に出力するというものです。
for文は、for ( ループの初期化 ; ループの条件 ; 1回ループごとに行う処理 ) のように記述します。
これは、最初に i という変数を 0 にして、i を毎回 +1 していき、hairetu.length より小さい間だけループさせるという意味です。
i++ とは、 i = i+1 の省略形で、for文以外の部分でも使うことができます。これはよく使われるので覚えておきましょう。
hairetu.length とは、配列型変数のもつプロパティと呼ばれるもので、配列の長さが入っています。上記例では、配列に 6 個のアイテムが入っていますので、hairetu.length の値は 6 になります。
for 文で囲まれた処理が1回終わるごとに、i の値が 0, 1, 2 のようにプラス1 されて上がっていきますが、この i の値が hairetu.length (6) より小さい間だけ、 for 文で囲まれた処理を行います。
上記プログラムでは、6回の処理を3行で行わせることが出来ます。
for文を使わないプログラム例 bookmark
ループの機能があることで、次のような面倒なプログラムを書かずに済みます。
sum = 0; sum += hairetu[0]; sum += hairetu[1]; sum += hairetu[2]; sum += hairetu[3]; sum += hairetu[4]; sum += hairetu[5]; document.write("合計:"+sum);
また、この場合、hairetuの長さが 6 だということが分かっている場合のも書ける方法なので、配列のすべてに対して何か処理するという場合はfor文は必ず使うことになります。
for文のもう一つの使い方 bookmark
for文にはもう一つの使い方があります。
<script type="text/javascript"> var hairetu = [34,65,1256,12356,12,523]; var sum = 0; var i = 0; for (i in hairetu) { sum += hairetu[i]; } document.write("合計:"+sum); </script>
for ( ループ変数 in 配列) という記法で、最初に紹介した方法よりもよりシンプルに使うことが出来ます。
この場合、配列のすべてを必ず処理するようになるので、配列の部分のみを処理したいような場合は、最初に紹介した、for ( ループの初期化 ; ループの条件 ; 1回ループごとに行う処理 ) の方法を使いましょう。
次のページ: 関数定義 (JavaScriptの基礎)