Возвращает логику javascript массива обратного отсчета

#javascript #arrays #for-loop

#javascript #массивы #for-цикл

Вопрос:

Может кто-нибудь сказать мне, что не так с моей логикой здесь? Я пытаюсь вернуть массив, который ведет обратный отсчет от числа, введенного в функцию. На данный момент я получаю пустой массив, в отличие от [7, 6, 5, 4, 3, 2, 1, 0] (ожидаемого результата).

 const countDown = (number) => {
  let arrayCount = [];
  for (let i = 0; i < number.length; i  ) {
    arrayCount.push(number.length - i)
  }
  return arrayCount
}


console.log(countDown(7)); 

Комментарии:

1. number.length Числа не имеют .length s. Вы просто хотите number

2. Ах, конечно. Спасибо!

Ответ №1:

Вместо number.length того, чтобы (числа не имеют length свойства), вы должны просто использовать number в обоих местах. Кроме того, внутри вашей спецификации цикла for используйте <= number , иначе вы будете сбиты на единицу.

 const countDown = (number) => {
  let arrayCount = [];
  for(let i = 0; i <= number; i  ) {
      arrayCount.push(number - i)
  }
return arrayCount
}


console.log(countDown(7)); 

Ответ №2:

Альтернативный метод заключается в том, чтобы поменять местами ключи массива.

 const countDown = number => [...Array(number   1).keys()].reverse();
console.log(countDown(7));