Индекс не существует JavaScript? - PullRequest
0 голосов
/ 11 декабря 2018

integrityCheck = function () {
    var check = ['098f6bcd', '4621d373', 'cade4e83', '2627b4f6'];
    for (var i = 0; i <= check.length; i++) {
        checkIntegrityOfData(
            i,
            check[i]
        );
    }
}

Возможно, в моей части кода есть очень очевидная ошибка, но я новичок в JavaScript, поэтому я не могу ее увидеть.

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018

Проблема в том, что ваш цикл увеличивается на вплоть до длины массива, однако длина массива начинается с 1, тогда как индексы массива начинаются с 0.Измените это на это:

for (var i = 0; i < check.length; i++) {

И это будет работать.(Все, что я сделал, это изменил i<=check.length на i<check.lengthпоэтому он не будет перебирать последний индекс, что и делает ошибку.

0 голосов
/ 11 декабря 2018

Индекс массива начинается с 0, что означает, что если массив имеет 5 элементов, длина будет 5, но максимальный индекс будет 4.

С вашей логикой условия Вам нужно будет исправить логику условия i <= check.length, последняя итерация цикла попытается получить доступ к check[4], но последний элемент в check будет в check[3].

Измените код условия цикла на

for (var i = 0; i < check.length; i++) {
...