for (let row = 1; row < 9 - 1; row++) として配列を表示すると”なし”という値が出るのはなぜですか?

配列のインデックスは 0 から始まるのでそのようになります。
2021年12月11日
ユーザー

この動画の他の方の質問の最後に

そのうえで、data[row] = []; //この箇所を削ってるを残してしまうとせっかく初期したものが、また空配列になってしまうからですね。

とありますが、

 for (let row = 0; row < 9; row++) {
        data[row] = [];
        for (let col = 0; col < 7; col++) {
          data[row][col] = 1;
        }
      }

ここで作った配列の配列に上書きをしていくために、

 data[row] = [];

は削っているというイメージでしょうか?

for (let row = 1; row < 9 - 1; row++) {
        data[row] = [];
        for (let col = 1; col < 7 - 1; col++) {
          data[row][col] = 0;
        } 
       console.log(data)
      }

試しに data[row] = []; をつけてconsole.log(data);で確認したところ、このようになりました。
どうして、なしが出てくるのでしょうか?

0: (7) [1, 1, 1, 1, 1, 1, 1]
1: (6) [なし, 0, 0, 0, 0, 0]
2: (6) [なし, 0, 0, 0, 0, 0]
3: (6) [なし, 0, 0, 0, 0, 0]
4: (6) [なし, 0, 0, 0, 0, 0]
5: (6) [なし, 0, 0, 0, 0, 0]
6: (6) [なし, 0, 0, 0, 0, 0]
7: (6) [なし, 0, 0, 0, 0, 0]
8: (7) [1, 1, 1, 1, 1, 1, 1]

すみませんが解説をよろしくお願いします。

この回答を見るにはプレミアムサービスへの登録が必要です

プレミアムサービスとは?