Использование 2d массива в javascript и попытка чтения значений из него дает «Uncaught TypeError: Невозможно прочитать свойство '0' из неопределенного» - PullRequest
0 голосов
/ 26 февраля 2020

Я пытаюсь go через лабиринт на html холсте со значениями. Я создал 2d массив со значениями в нем.

const pot=[[0, 2], [-2, 0], [0, 1], [-1, 0], [0, 2], 
    [1, 0], [0, 3], [1, 0], [0, 1], [1, 0], 
    [0, -1], [2, 0], [0, -1], [1, 0], [0, 1], 
    [4, 0], [0, -1], [-3, 0], [0, -1], [3, 0], 
    [0, -2], [2, 0], [0, 3], [-1, 0], [0, 1], 
    [1, 0], [0, 1], [-1, 0], [0, 1], [-1, 0], 
    [0, -1], [-6, 0], [0, 2], [1, 0], [0, 2], 
    [1, 0], [0, 1], [-1, 0], [0, -1], [-1, 0], 
    [0, -2], [-1, 0], [0, 1], [-5, 0], [0, -1], 
    [1, 0], [0, -1], [-1, 0], [0, -1], [2, 0], 
    [0, -1], [-1, 0], [0, -1], [-2, 0], [0, 4], 
    [-2, 0], [0, -1], [1, 0], [0, -1], [-2, 0], 
    [0, 3], [2, 0], [0, 2], [-1, 0], [0, -1], 
    [-1, 0], [0, 2], [3, 0], [0, -2], [2, 0], 
    [0, 1], [-1, 0], [0, 3], [-1, 0], [0, 1], 
    [4, 0], [0, -1], [-2, 0], [0, -1], [5, 0], 
    [0, 1], [-2, 0], [0, 1], [2, 0], [0, 1]];

для чтения значений из него, я сделал для l oop

var dolz=pot.length;
    for(var i=0; i<=dolz; i++){
        x += pot[i][0]*(w/dimenzija);
        y += pot[i][1]*(h/dimenzija);
        ctx.lineTo(x, y);
    }
    ctx.stroke();

Когда я запускаю код, я получить ошибку Uncaught TypeError: Cannot read property '0' of undefined, которая ссылается на библиотеку jquery, которая затем возвращается к коду для l oop и указывает на ошибку в части кода x += pot[i][0]*(w/dimenzija);. В чем может быть причина этой ошибки?

1 Ответ

2 голосов
/ 26 февраля 2020

Измените '<=' на '<'. Длина массива всегда больше, чем последний индекс в массиве. </p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...