1. TOPTOP
  2. Web学習法

ドットインストール JavaScriptで作る「数字タッチゲーム」 配列と配列変数の使い方について

|

dotinstall

またもや、プログラミングで分からない事態が発生!頭のカオス状態になってきた…。

だけど、ふとしたきっかけに、教えてもらえることもあるかもしれません。一応記録として残しておきましょう。今回の問題はこちらです↓

問題の内容

よく分からない箇所は、画面を構成する要素から、ボタンに0から8までの、数字がランダムに表示されるという実装のところです。

        var currentNum;

        function timerStart() {
            initBoard();
            currentNum = 0;
        }

        function initBoard() {
            var nums = [0, 1, 2, 3, 4, 5, 6, 7, 8];
            var num;
            for (var i=0; i<9; i++) {

                num = nums.splice(Math.floor(Math.random() * nums.length), 1);
                document.getElementById('button_' + i).value = num[0];
            }
        }

        function touched(n) {
            var btn = document.getElementById('button_' + n);
            if (btn.value == currentNum) {
                btn.disabled = true;
                currentNum++;
            }
        }

問題の詳細

34行目から41行目でランダムに数字が表示されるための関数処理が記述されています。関数の処理内容を日本語で表すと、こんな感じ。

配列numsで初期化

その配列を取り出す変数numを初期化

0から8までの要素を1つ取り出して削除。その削除した数字をnumに突っ込む

???

9回繰り返し

document.getElementById(‘button_’ + i).value = num[0];

という表現のうち特に、num[0]というのがよく分からん!!!
配列変数で後ろに[0]がつくらなら分かるんですが、ふつうの配列に[0]がつくってどういうことでしょうか?

手持ちの本でざーっと調べてみましたが、ふつうの配列に[0]がつくことがどういうことなのか調べきれませんでした。

こういうときGoogle先生にどういうキーワードでお聞きすればいいんでしょうか?