2次元配列から最大値を検索する
2行、5列の二次元配列に適当な数値(0以上)が入っています。ここから最大の数値を検索するプログラムが下記になります。新規でプログラムを作成し、下記を入力するかコピーしてください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
<meta charset="UTF-8"> <script type="text/javascript"> var hairetsu = [ [1231,232,10,5,333], [1,343,66,1230,355] ]; //最大値格納用変数。初期値をマイナスとしておく var Max = -1; //配列の行数分ループを行う for(var idx = 0;idx < hairetsu.length;idx = idx + 1){ //配列の列数分ループを行う for( var idx2 = 0;idx2 < hairetsu[0].length;idx2 = idx2 + 1){ if( hairetsu[idx][idx2] > Max ){ //配列の値が最大値か? Max = hairetsu[idx][idx2]; //最大値の値を更新する } } } window.alert("最大値は"+Max+"です。"); </script> |
プログラムを眺めながら動きを確認してください。また、配列の数値やループ条件を変えながら、どのように変化するか試してみてください。
残額を求める
複数のスーパーで買い物をしました。商品の購入金額はスーパー毎に次のように格納されています。
1 2 3 4 5 |
var price = [ [440,330,108,180,233], //スーパーA [680,210,1280,0,0], //スーパーB [2400,480,93,240,0] //スーパーC ]; |
所持金は10,000円でした。各スーパ毎の購入金額を集計し、残金を計算するプログラムが下記になります。新規でプログラムを作成し、下記を入力するかコピーしてください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
<meta charset="UTF-8"> <script type="text/javascript"> var price = [ [440,330,108,180,233], //スーパーA [680,210,1280,0,0], //スーパーB [2400,480,93,240,0] //スーパーC ]; var mise = ["スーパーA","スーパーB","スーパーC"]; var k=0; var kei=0; //店舗の件数分ループを行う for(var i=0;i<mise.length;i=i+1){ //買い物のアイテム数分ループを行う for(var j=0; j<price[i].length;j=j+1){ k = k + price[i][j]; //金額を合計する } //店毎の合計表示 document.write(mise[i] + "の合計は"+k+"円です。<BR>"); kei = kei + k; //店毎の合計の加算 k=0; } document.write("合計は"+kei+"円です。<BR>"); document.write("残高は"+(10000-kei)+"円です。"); </script> |
プログラムを変更しながら理解を深めていってください。次のチャレンジも、ぜひ挑戦してみてください。