> Как преобразовать объект arguments в массив в JavaScript (JavaScript, TypeScript)

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

Компании: Яндекс

Стек: JavaScript, TypeScript

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

Объект arguments - это массивоподобный объект, доступный внутри всех (нестрелочных) функций. Он имеет свойство length и индексированные элементы, но не имеет методов массива (например, map, filter, forEach). Для преобразования его в настоящий массив можно использовать несколько способов:

  1. Array.from() (ES6, рекомендуется):

    JAVASCRIPT
    function example() {
    const args = Array.from(arguments);
    // теперь args - полноценный массив
    }
  2. Spread-оператор (ES6):

    JAVASCRIPT
    function example() {
    const args = [...arguments];
    }
  3. Array.prototype.slice.call() (классический способ, ES5):

    JAVASCRIPT
    function example() {
    const args = Array.prototype.slice.call(arguments);
    }
  4. Array.prototype.concat.apply() (менее распространённый):

    JAVASCRIPT
    function example() {
    const args = Array.prototype.concat.apply([], arguments);
    }

Важно: В стрелочных функциях объект arguments не существует. Если вы используете TypeScript, лучше явно задать типы параметров через rest-параметры:

TYPESCRIPT
function example(...args: number[]) {
// args уже массив
}

Наиболее современный и читаемый способ - Array.from() или spread-оператор. Выбор зависит от поддержки окружения (для старых браузеров подойдёт slice).

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

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