Как создать массив чисел от 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 — Возвращает индексы массива.