首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

JS 九宮格判斷勝負報錯 Cannot read property 'length' of undefined:數組越界調試

     編輯:程式設計綜合問答

錯誤:Uncaught TypeError: Cannot read property 'length' of undefined 發生在 win[h].length。

根因

win 數組定義不完整,或索引 h 超出範圍。典型代碼:

var win = [
    [0,1,2], [3,4,5], [6,7,8], // 行
    [0,3,6], [1,4,7], [2,5,8], // 列
    [0,4,8], [2,4,6]           // 對角
];
// 但循環寫成 for(h=0; h<=8; h++) → win[8] 為 undefined

修正

  1. 檢查 win 數組長度應為 8(3行+3列+2對角)。
  2. 循環條件 h < win.length 而非硬編碼 8。
  3. 添加防禦判斷:
    if (!win[h]) continue;

調試技巧

  • Console 打印 console.log(win, h) 觀察實際結構。
  • 使用 Array.isArray(win[h]) 確認元素類型。
  • VS Code 設置斷點單步執行,觀察 h 變化。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved