Зачем в данном случае нужен метод 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, время: 23:57. |