Ptichkaz
@Ptichkaz
Разгильдяй

Почему автор книги передал второму и третьему операнду именно такие значения?

Здравствуйте! Сделав упражнение автора книги "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), почему не step = start < end ? step : -step, если и без этой проверки код нормально работает?
  • Вопрос задан
  • 98 просмотров
Решения вопроса 1
wapster92
@wapster92 Куратор тега JavaScript
Это значение по умолчанию, если шаг не задали.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы