JS / TS: ошибка с 2D-массивом строк, внезапно становящимся неопределенным - PullRequest
1 голос
/ 20 июня 2020

Я делаю игру Connect 4 для приложения Discord. js. Я сохраняю игровую доску как двумерный массив строк и инициализирую ее следующим образом:

var board:string[][] = new Array<Array<string>>();
function resetBoard():void {
  for(let i=0; i<numRows; i++){
    board[i] = new Array<string>();
    for(let j=0; j<cols; j++){
      board[i].push(" ");
    }
  }
}

Однако, когда я пытаюсь получить доступ к части доски, выдается ошибка "не может прочитать свойство '0' of undefined ".

function whatsAtPos(row, col){
  return board[row][col];
}

Все функции находятся в одном файле, а board [] [] является глобальной переменной. Я перепробовал все, что мог, чтобы исправить это, и понятия не имею, что происходит.

1 Ответ

0 голосов
/ 20 июня 2020
• 1000 const или не изменить перед вызовом добавить проверку: в функцию whatsAtPos аргументы о типах, а во время функции проверить значение строки, столбец, который будет в диапазоне [0, numRows-1], [0 , cols-1]
...