> Как создать массив с числами от 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().
Если массив нужен для итерации без хранения, рассмотрите генератор:
JAVASCRIPTfunction* 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 + spreadconst arr2 = [...Array(50).keys()].map(i => i + 1);console.log(arr2);// Способ 3: fill + mapconst 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 - избыточно и менее читаемо
> Похожие задачи по frontend
Как выполняется цикл с условием сравнения строки и числа в JavaScript?
Как проверить, что первый аргумент является числом в JavaScript?
Для чего нужен тип Symbol в JavaScript?
Как создать и выполнить промис через конструктор в JavaScript
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью