前回はif文、for文、while文など、条件分岐に関わる部分でした。今回は配列についてです。
変数を複数集めた箱「配列」
最初の記事で書いた変数(データを入れる箱)を複数集めた箱のようなものを配列と呼ぶ。配列は2種類の書き方がある。
配列の書き方その①値を1つ1つ定義する
var city = new Array(); city[0] = "tokyo"; city[1] = "osaka"; city[2] = "nagoya";
新しくデータを追加する場合は、配列の番号(キー)と値を追加することで作ることができる。なお、配列の番号(キー)は、0から始まる。
書き方その②一度にまとめて定義する
var city = ["tokyo" , "osaka" , "nagoya"];
配列は配列の番号(キー)とその中身がセットで記述され、上記のようにまとめて定義を行うこともできる。配列の中身を取り出すときは、配列の番号(キー)が必要となる。
CodeCampの課題プログラム
いくつか課題があった中で、一番手間のかかったやつを載せてみます。
複数の数値が定義されている配列data1とdata2から「data1とdata2を合わせた平均値」と「平均値以上の数値」を表示するプログラムです。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>課題</title> <script> var data1 = [59, 39, 100, 2, 15, 40, 84, 97]; var data2 = [63, 18, 64, 97, 50, 98]; var sum1 = 0; //data1の合計値 var sum2 = 0; //data2の合計値 var ave = 0; //data1とdata2の平均値 var j = 0; //dataの配列数のカウント //data1の合計値を取得 for(var i = 0; i < data1.length; i++){ sum1 += data1[i]; j = j + 1 } //data2の合計値を取得 for(var i = 0; i < data2.length; i++){ sum2 += data2[i]; j = j + 1 } //data1とdata2の平均値を計算して表示 ave = ( sum1 + sum2 ) / j; document.write("<p>data1とdata2を合わせた平均値:" + ave + "</p>"); document.write("<p>平均値以上の数値は以下</p>"); //data1の数字を平均点と比較して表示 for(var i = 0; i < data1.length; i++){ if( data1[i] >= ave){ document.write("<p>data1:" + data1[i] + "</p>"); } else { } } //data2の数字を平均点と比較して表示 for(var i = 0; i < data2.length; i++){ if( data2[i] >= ave){ document.write("<p>data2:" + data2[i] + "</p>"); } else { } } </script> </head> <body> </body> </html>
課題はちょっと考えたら解けたけど、実際どういった場面で使うのか、具体的なイメージがついていないのが正直なところ。
今の段階でわかっていることは、配列は、条件分岐や繰り返し処理を組み合わせることで柔軟なデータの処理ができそうということでしょうか。
うーん、現段階では、正直何も作れる気がしませんねw
しかし、徐々にややこしくなってきました。次回は関数についてです。