Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как создать массив чисел от 1 до N

Короткий ответ

Array.from() с длиной создаёт массив и заполняет его по индексу:

const numbers = Array.from({ length: 5 }, (_, i) => i + 1);
 
console.log(numbers.join(', '));

Результат:

1, 2, 3, 4, 5

С шагом

Функция для диапазона от start до end с любым шагом:

const range = (start, end, step = 1) =>
  Array.from({ length: Math.floor((end - start) / step) + 1 }, (_, i) => start + i * step);
 
console.log(range(0, 20, 5).join(', '));
console.log(range(10, 15).join(', '));

Результат:

0, 5, 10, 15, 20
10, 11, 12, 13, 14, 15

Одно и то же значение

fill() заполняет массив одним значением:

console.log(new Array(3).fill(0).join(', '));

Результат:

0, 0, 0

Частая ошибка

fill() с объектом кладёт в каждую ячейку один и тот же объект. Чтобы объекты были разными, используйте Array.from() с функцией:

const shared = new Array(2).fill({ count: 0 });
shared[0].count = 5;
 
const separate = Array.from({ length: 2 }, () => ({ count: 0 }));
separate[0].count = 5;
 
console.log(shared[1].count, separate[1].count);

Результат:

5 0

Функции из этого ответа

  • Array.from — Создаёт массив из строки, Set, Map или другого перебираемого объекта.
  • Array.prototype.fill — Заполняет массив одним значением.
  • Array.prototype.keys — Возвращает индексы массива.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.