May 17, 2021

Как создать массив от 1 до заданного числа в JavaScript

Допустим, мы хотим построить массив от 1 до N. Например, N = 10 и мы ожидаем получить массив вида [1, 2, 3, ... , 9, 10]

Существует несколько способов это сделать.

Самый очевидный - использовать цикл:

let allNumbers = [];
for (let i = 1; i=< number; i++){
    allNumbers.push(i);
  }

Есть и другие, более короткие способы, которые дадут такой же результат.

Spread syntax

[ ...Array(N).keys() ].map( i => i+1);

Допустим, N = 10.

  • Создаем новый пустой массив нужной длины с помощью конструктора Array()
  • Наполняем элементами с помощью метода ...arr.keys()
  • Получаем массив вида [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
  • С использованием метода .map() корректируем значения при создании массива. В данном случае добавляем 1 чтобы массив был от 1 до N, а не от нуля.
  • Получаем желаемый массив [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Еще более короткий способ:

[...Array(100)].map((_, i) => i)

И еще несколько вариантов:

Array(N).fill().map((_, i) => i+1);
Array.from(Array(N), (_, i) => i+1)
Array.from({ length: N }, (_, i) => i+1)