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

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

Julia Avsyuk Знаток (255), на голосовании 6 лет назад
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 округляет число вниз до лижайшего целого. И все равно??
Голосование за лучший ответ
Кощей Просветленный (25889) 6 лет назад
Что непонятного? Идем до середины массива и меняем местами i-ый элемент с начала и с конца массива, чтобы элементы в итоге шли задом на перед.
Julia AvsyukЗнаток (255) 6 лет назад
До середины массива!! Точно. Спасибо
Павел Корнилов Мыслитель (8950) 6 лет назад
Math.floor(array.length / 2) в контексте приведенного кода означает, что итерации i цикла не хотят передавать дробное значение. Хотя правильнее было бы записать Math.round

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