Всем привет! Сижу над заданием из учебника "Выразительный JS".
Кратко, задание состоит в том, что бы сделать массив из последовательности чисел, ограниченых задаными start и end.
Аргумент step - шаг массива, если он есть, то каждое последующее значение массива увеличивается на step, если шаг не задан, то на единицу. Мне стало интересно посмотреть, как будет работать, когда начальное больше конечного значения и при отсуствующем шаге последний будет задан как -1.
В моем коде четвертое условие, когда конечное значение больше начального и шаг не задан, - не отрабатывает. Хотя третье условие работает как нужно.
function range(start, end, step) {
var arr = [];
if (step > 0) {
for (var n = start; n <= end; n += step)
arr.push(n);
} else if (step < 0) {
for (var n = start; n >= end; n += step)
arr.push(n)
} else if (step == undefined || step == null || step == 0 && start < end) {
for (var n = start; n <= end; n++)
arr.push(n);
} else if (step == undefined || step == null || step == 0 && start > end) {
for (var n = start; n >= end; n--)
arr.push(n);
}
return arr;
};
console.log(range(10, 1));