Javascript Array [i] как условие в циклах - PullRequest
0 голосов
/ 13 января 2020

Я пытаюсь понять, как работает условие myArr [i]. По некоторым причинам он оценивается как ложное, когда я больше 2, что также является длиной массива. Очевидно, что myArr [i] равен i

let myArr = [[1, 3], [5, 2], [2, 1]]

for (let i = 0; myArr[i]; i++){
    console.log(i)  //Result: 0, 1, 2
}

let i = 0
while (myArr[i]){
    console.log(i)  ////Result: 0, 1, 2
    i++
}

Ответы [ 2 ]

1 голос
/ 13 января 2020

При индексации в массиве вы получите неопределенный результат, когда попробуете индекс, который не существует. Неопределенное неявно преобразуется в «ложноподобное» значение.

0 голосов
/ 13 января 2020

Нет myArr [i] не <длина массива. </p>

myArry [i] - это ссылка на то, что находится в слоте памяти i Каждый раздел массива является указателем в memory.

Итак, когда вы говорите myArry [2], вы просите компьютер извлечь значение, сохраненное в памяти слота 2 в массиве. Когда вы говорите myArry [3], у вас ничего не хранится в этом слоте памяти, поэтому он возвращает неопределенное значение.

...