Сумма диапазона
Напишите функцию диапазона, которая принимает два аргумента, начало и конец, и возвращает массив, содержащий все числа от начала до конца (включительно) .
Измените функцию диапазона, чтобы она принимала необязательный третий аргумент, который указывает значение «шага», используемое при построении массива. Если шаг не задан, элементы go увеличиваются на единицу, что соответствует старому поведению. Диапазон вызова функции (1, 10, 2) должен возвращать [1, 3, 5, 7, 9]. Убедитесь, что он также работает с отрицательными значениями шага , чтобы диапазон (5, 2, -1) давал [5, 4, 3, 2].
Книжное решение:
function range(start, end, step) {
if (step == null) step = 1;
var array = [];
if (step > 0) {
for (var i = start; i <= end; i += step)
array.push(i);
} else {
for (var i = start; i >= end; i += step)
array.push(i);
}
return array;
}
console.log (range(1,10,2))
// → [1, 3, 5, 7, 9]
console.log(range(5, 2, -1));
// → [5, 4, 3, 2]
Но это решение не работает ни с одним начальным и конечным значением.
Пример:
console.log (range(1,10,-1))
// → []
Призывают ли кого-нибудь изменить код и объяснить Шаги подробно, чтобы он работал с любыми положительными или отрицательными значениями начала, конца и шага? ТКС