> Как собрать неопределённое количество аргументов функции в JavaScript и работать с ними (JavaScript)

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

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

Стек: JavaScript

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

В JavaScript для сбора неопределённого количества аргументов используются rest-параметры (синтаксис ...). Они позволяют представить все переданные аргументы как массив.

Пример с rest-параметрами:

JAVASCRIPT
function sumAll(...numbers) {
return numbers.reduce((acc, num) => acc + num, 0);
}
console.log(sumAll(1, 2, 3)); // 6
console.log(sumAll(10, 20)); // 30
console.log(sumAll()); // 0

Rest-параметр обязательно должен быть последним в списке параметров.

Альтернативный способ (устаревший): объект arguments (доступен только в обычных функциях, не в стрелочных):

JAVASCRIPT
function logArgs() {
for (let i = 0; i < arguments.length; i++) {
console.log(arguments[i]);
}
}
logArgs('a', 'b', 'c'); // a, b, c

Однако arguments - не настоящий массив, а псевдомассив, поэтому методы массивов (например, map, filter) напрямую не работают. Rest-параметры предпочтительнее, так как возвращают полноценный массив.

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

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