Здравствуйте! Сделав упражнение автора книги "Eloquent Javascript", я зашёл на его сайт, и решил проверить, как автор решил данную задачу, но был немного удивлён.
function range(start, end, step = start < end ? 1 : -1) {
let array = [];
if (step > 0) {
for (let i = start; i <= end; i += step) array.push(i);
} else {
for (let i = start; i >= end; i += step) array.push(i);
}
return array;
}
Моё решение задачи немного отличалось
function range(start, end, differences) {
let a = [];
if (differences > 0) {
for (let i = start; i <= end; i += differences) a.push(i);
} else {
for (let i = start; i >= end; i += differences) a.push(i);
}
return a;
}
Зачем автор сделал это с третьим аргументом
(step = start < end ? 1 : -1)
, почему не s
tep = start < end ? step : -step
, если и без этой проверки код нормально работает?