var array = [1, 2, 3, 4, 5, 6, 7, 8];
for (var i = 0; i < (array.length / 2); i++) {
array[i] = [array[i], array[array.length - i - 1]];
array[array.length - i - 1] = array[i][0];
array[i] = array[i][1];
}
console.log( array );
Народ помогите разобраться с массивом. Понимаю какой будет в итоге результат, но не понимаю как работает.
Например: array[array.length - i - 1] - Почему мы получаем здесь 8-ку? Чему здесь равняется i?
-1 - это мы отбрасываем последнюю ячейку?
Индекс массива начинается с нуля, т.е. первая ячейка соответствует индексу 0, последняя - 7. Длинна массива равняется 8. Если мы попробуем из нашего массива получить значение
array[8];
получим ошибку, ведь мы уже знаем что наш массив проиндексирован от 0 до 7.
Вычисление индекса array[array.length - i - 1] при первой итерации даст нам значение равное 7. Всё равно что обратиться к ячейке array[7], которая содержит цифру 8. Далее при завершении первой итерации цикл for прибавит к i единицу.
Работает так же, как
var array = [1,2,3,4,5,6,7,8];
var temp;
for (var i = 0; i < (array.length / 2); i++) {
temp = array[i];
array[i] = array[array.length - i - 1];
array[array.length - i - 1] = temp;
}
document.write(array);
Т.е. зеркально переставляет элементы массива.
Но дольше.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости