簡體   English   中英

未捕獲的TypeError:無法讀取數組中未定義的屬性“ 1”

[英]Uncaught TypeError: Cannot read property '1' of undefined in array

var grid = [];
    for (var i = 0;i < 6;i++)
    {
        for (var j = 0; j < 6; j++)
        grid[i] = [];
    }

    //Checking function(how many bombs near)
    function check(cx,cy)
    {
        var numb = 0;
        if (grid[cx][cy - 1] == "B") numb++;
        if (grid[cx][cy + 1] == "B") numb++;
        if (grid[cx - 1][cy] == "B") numb++;
        if (grid[cx + 1][cy] == "B") numb++;
        if (grid[cx - 1][cy - 1] == "B") numb++;
        if (grid[cx + 1][cy - 1] == "B") numb++;
        if (grid[cx - 1][cy + 1] == "B") numb++;
        if (grid[cx + 1][cy + 1] == "B") numb++;

        return numb;
    }** 

當我嘗試檢查每個包含cx +或-1的位置時,它給了我一個錯誤,我嘗試以其他方式制作數組,但沒有幫助。 我嘗試做一個掃雷游戲,所以在這里我檢查每個給定的等離子點附近有多少枚炸彈

為了避免使用沒有數組或值的數組索引,可以使用函數並將數組和索引移交,如果值是'B'則返回true ,否則返回false

檢查使用in運算符和后衛運算符( 邏輯AND && ),后者轉為false並繼續為true ,然后檢查值。

function checkB(array, i, j) {
    return i in array && array[i][j] === 'B';
}

// call
if (checkB(grid, cx, cy - 1)) numb++;

檢查你的功能

通話檢查時(0,0)

if (grid[cx][cy - 1] == "B") numb++;

格[0] [0-1] =

0-1 =?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM