Mail.RuПочтаМой МирОдноклассникиИгрыЗнакомстваНовостиПоискВсе проекты

Ребят, кто может объяснить это условие i < Math.floor(array.length / 2) в контексте. Как-то не понятно.

Знаток (253), на голосовании 1 месяц назад
unction reverseArrayInPlace(array) {
for (var i = 0; i < Math.floor(array.length / 2); i++) {
var old = array [i];
array [i] = array [array.length - 1 - i];
array [array.length - 1 - i] = old;
}
return array;
}

var arrayValue = [1,2,3,4,5];
reverseArrayInPlace(arrayValue);
console.log(arrayValue);

Знаю, что Math.floor округляет число вниз до лижайшего целого. И все равно??
Голосование за лучший ответ
Что непонятного? Идем до середины массива и меняем местами i-ый элемент с начала и с конца массива, чтобы элементы в итоге шли задом на перед.
Комментарий удален
Math.floor(array.length / 2) в контексте приведенного кода означает, что итерации i цикла не хотят передавать дробное значение. Хотя правильнее было бы записать Math.round

Кстати, если что, у массивов есть нативный метод reverse.
[1,2,3,4,5].reverse()
Комментарий удален
Павел Корнилов Мыслитель (8804) Юля, тогда сама функция очень многодельна. Значительно проще было бы как-то так: var arr= [1,2,3,4,5], tmp=[], L=arr.length-1; while(arr[L]) { tmp.push(arr[L]); L--; } console.log(tmp.valueOf());
Комментарий удален
Павел Корнилов Мыслитель (8804) На здоровье!
Похожие вопросы
Также спрашивают