> Как создать массив с числами от 1 до 50 и вывести их в JavaScript? (JavaScript)

Уровень: middle · Роль: frontend · Категория: Технические вопросы

Компании: Газпромбанк

Стек: JavaScript

> Пример ответа

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

Самый лаконичный способ - использовать Array.from({ length: 50 }, (_, i) => i + 1) или spread-оператор с Array(50).keys(). Для вывода подойдёт console.log или forEach. Эти методы создают массив без мутаций и работают в современном JavaScript.

Подробное объяснение

Задача создания последовательности чисел от 1 до N решается несколькими способами. Классический цикл for остаётся рабочим, но в современном JS предпочтительнее функциональные подходы.

Array.from({ length: 50 }, (_, i) => i + 1) - наиболее читаемый вариант. Первый аргумент - объект с length, второй - map-функция, где i - индекс от 0 до 49, поэтому добавляем 1.

[...Array(50).keys()].map(i => i + 1) - альтернатива: Array(50) создаёт разреженный массив, .keys() возвращает итератор индексов, spread превращает его в массив, затем map сдвигает значения.

Array(50).fill().map((_, i) => i + 1) - ещё один вариант, где fill() заполняет пустые элементы undefined, после чего map работает корректно.

Для вывода используйте console.log(arr) или arr.forEach(n => console.log(n)).

На практике

В реальных проектах такие массивы нужны для генерации тестовых данных, pagination UI, создания опций в select или grid-компонентов. Array.from предпочтительнее из-за читаемости и производительности - он не создаёт промежуточных массивов, в отличие от цепочек с .keys() и .map().

Если массив нужен для итерации без хранения, рассмотрите генератор:

JAVASCRIPT
function* range(start, end) {
for (let i = start; i <= end; i++) yield i;
}

Пример кода

JAVASCRIPT
// Способ 1: Array.from (рекомендуемый)
const arr1 = Array.from({ length: 50 }, (_, i) => i + 1);
console.log(arr1);
// Способ 2: keys + spread
const arr2 = [...Array(50).keys()].map(i => i + 1);
console.log(arr2);
// Способ 3: fill + map
const arr3 = Array(50).fill().map((_, i) => i + 1);
console.log(arr3);
// Вывод каждого числа
arr1.forEach(num => console.log(num));

Как отвечать на собеседовании

Начните с самого простого и читаемого решения - Array.from. Упомяните, что знаете альтернативы, но предпочитаете этот вариант. Объясните, почему не используете цикл for (более декларативный код). Если спросят про производительность - скажите, что разница незаметна для 50 элементов, но для больших массивов Array.from эффективнее, чем цепочка методов.

Что проверяет интервьюер

  • Знание современных методов массивов (Array.from, spread, keys)
  • Понимание разницы между разреженными и плотными массивами
  • Умение выбирать оптимальный синтаксис под задачу
  • Осознание trade-off между читаемостью и производительностью

Типичные ошибки

  • Использование new Array(50).map(...) - map не работает на разреженных массивах, результат останется пустым
  • Забывают сдвиг индекса: Array.from({length: 50}, (_, i) => i) даст 0-49, а не 1-50
  • Применение Array(50).keys() без spread - получается итератор, а не массив
  • Создание массива через цикл с push - избыточно и менее читаемо

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью