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);
Т.е. зеркально переставляет элементы массива.
Но дольше.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Подскажите какие должны быть настройки у image-min и его плагинов через Gulp, чтобы уровень сжатия картинок (png, jpg) был приближен к сжатию в Tinypng ?
Формирую данные с сервера динамически и храню промежуточные данные задачи в массиве примерно в таком виде