Почему переменная цикла во время итерации - добавление элементов в массив ведет себя так?
уважаемые коллеги, кто может объяснить, почему во время использования данного цикла:
let arr = [];
for (let i = 0; i < 9; i++) {
arr[i] = arr.push(i);
}
console.log(arr);
Консоль выведет: (9) [1, 2, 3, 4, 5, 6, 7, 8, 9];
А при использовании вот такой записи:
let arr = [];
for (let i = 0; i < 9; i++) {
arr.push(i);
}
console.log(arr);
Консоль выведет: (9) [0, 1, 2, 3, 4, 5, 6, 7, 8]
Правильно ли я рассуждаю, что всё дело в том, как работает интерпретатор JS с оператором 'Инкремента/декремента'. Или же тут ещё замешана особенность итерации в JS с данными операторами?
Ответы (1 шт):
Автор решения: Алексей Шиманский
→ Ссылка
Ничего хитрого тут совсем нет. Как и многие функции push возвращает значение. А возвращает она "количество элементов в массиве" после совершения операции. Вот и получается, что после первой вставки там 1, после второй - 2 и т.д.