Зачем в данном случае нужен метод Math.floor, если убрав его ничего не меняется. Буду благодарен за ответ , для моего понимания...
function reverseArrayInPlace(array) { for (var i = 0; i < Math.floor(array.length - 1 - i); i++) { let old = array[i]; array[i] = array[array.length - 1 - i]; array[array.length - 1 - i] = old; } return array; } let arrayValue = [1, 2, 3, 4, 5, 6]; reverseArrayInPlace(arrayValue); console.log(arrayValue); // → [6, 5, 4, 3, 2, 1] |
В данном случае Math.floor не нужен
function reverse(array) { var j = array.length - 1; for (var i = 0; i < j; i++, j--) { [array[i], array[j]] = [array[j], array[i]]; } return array; } |
Цитата:
|
Цитата:
//Attention: infinity loop function* range(start, end) { for (let i = start; i <= end; i++) yield i; } function sum(array) { let total = 0; for(const value of array) total += value; return total; } sum(range(0, Infinity)); |
ОК, я такого, что вы тут написали даже и не запускал! В №9 чуть другой пример!
Вычисление range(1, Infinity) |> take.bind(null, 5) |> sum |> alert без итератора (Осторожность! Бесконечный цикл!) function range(start, end) { let array = []; for (var i = start; i <= end; i++) array.push(i); return array; } function sum(array) { let total = 0; for(const value of array) total += value; return total; } function* take(n, xs) { for(const x of xs) { if(n-- <= 0) break; yield x; } } alert(sum(take(5, range(1, Infinity)))); Вычисление range(1, Infinity) |> take.bind(null, 5) |> sum |> alert с итератором (Запускайте смело!) function* range(start, end) { for (let i = start; i <= end; i++) yield i; } function sum(array) { let total = 0; for(const value of array) total += value; return total; } function* take(n, xs) { for(const x of xs) { if(n-- <= 0) break; yield x; } } alert(sum(take(5, range(1, Infinity)))); |
Цитата:
Меня изначально интересовало почему вы в коде из поста №7 использовали генератор, причина этого. Может я чего-то не знаю. Видимо причины особой использовать генератор не было. Не буду вас больше мучить вопросами, спасибо. |
Цитата:
![]() Вычисление range(1, Infinity) |> sum |> alert без итератора function range(start, end) { let array = []; for (var i = start; i <= end; i++) array.push(i); return array; } function sum(array) { let total = 0; for(const value of array) total += value; return total; } debugger; alert(sum(range(1, 5))); Вычисление range(1, Infinity) |> sum |> alert с итератором function* range(start, end) { for (let i = start; i <= end; i++) yield i; } function sum(array) { let total = 0; for(const value of array) total += value; return total; } debugger; alert(sum(range(1, 5))); |
Цитата:
|
Цитата:
Непонятно, чем хуже вариант, в котором сначала создается массив значений, а после его значения суммируются. |
Цитата:
|
Часовой пояс GMT +3, время: 10:10. |