Преобразование аргументов в массив в JavaScript

  1. Что такое объект arguments в JavaScript
  2. Преобразуйте объект arguments в массив, используя rest параметры в JavaScript
  3. Преобразуйте объект arguments в массив с помощью метода Array.from() в JavaScript
  4. Преобразуйте объект arguments в массив с помощью литералов массива в JavaScript

Что такое объект arguments в JavaScript

arguments - это объект, который присутствует внутри каждой функции. Какие бы параметры вы ни передали функции в JavaScript, эти параметры хранятся в этом списке аргументов в форме объекта. Ключи этого объекта - числа, начинающиеся с нуля. Чтобы получить доступ к значениям, присутствующим внутри объекта arguments, мы можем использовать эти ключи.

Этот объект arguments можно использовать как массив, но он не поддерживает функции JavaScript, такие как forEach, sort, filter и map. Итак, если вы хотите использовать эти функции с объектом arguments, вы должны преобразовать весь этот объект в массив.

Объект arguments можно преобразовать в массив множеством различных способов. Мы остановимся на наиболее популярных способах, таких как использование остальных параметров, array.from() и массивных литералов. Обсудим подробно каждый из них.

Преобразуйте объект arguments в массив, используя rest параметры в JavaScript

Параметр rest позволяет функции принимать на вход переменное количество аргументов. Он представлен ...args. Здесь вместо args вы можете дать любое имя, а тройная точка ... известна как оператор распространения.

Теперь, когда вы передаете ...args в качестве параметра функции, это преобразует объект arguments в массив, и теперь вы можете получить доступ к объекту arguments, используя имя args.

function func(...args) {
    console.log(args);
    console.log(args[0]);
}

func(1,2,3);

Выход:

[ 1, 2, 3 ]
1

В этом примере мы передаем параметры 1,2,3 в качестве аргумента функции func(). Поскольку мы использовали оператор rest, мы получим объект arguments в виде массива. И теперь мы можем использовать для этого массива различные методы, такие как сортировка или фильтрация.

Преобразуйте объект arguments в массив с помощью метода Array.from() в JavaScript

Другой способ преобразования объекта аргументов в массив - использование метода Array.from(). Здесь мы должны передать объект arguments внутри метода from(), дав нам массив. Вы можете сохранить полученный массив в переменной или даже получить прямой доступ к элементам внутри этого массива.

function func() {
    console.log(Array.from(arguments));
    console.log(Array.from(arguments)[0]);
}

func(1,2,3);

Выход:

[ 1, 2, 3 ]
1

Мы также взяли тот же пример, но с той лишь разницей, что мы используем Array.from() и передаем объект arguments вместо использования оператора rest. Вы можете использовать индексирование массивов, например Array.from(arguments)[0], для доступа к отдельным элементам. Это вернет первый элемент массива.

Преобразуйте объект arguments в массив с помощью литералов массива в JavaScript

Литералы массива - это список, состоящий из нуля или более элементов, начинающихся с нулевого индекса. В литералах массива элементы заключаются в квадратные скобки []. Здесь к каждому элементу можно получить доступ по его порядковому номеру.

function func() {
    let args = [].slice.call(arguments);

    console.log(args);
    console.log(args[2]);
}

func(1,2,3);

Выход:

[ 1, 2, 3 ]
3

Чтобы преобразовать объект arguments в массив, мы сначала взяли пустой массив. В этом массиве мы вызываем метод slice(), используя метод call(). Теперь метод slice() будет перебирать переданный объект. В данном случае это объект arguments, а затем он добавит все элементы внутри объекта в пустой массив. В конце концов, мы сохраним результат внутри переменной args.

Поскольку эта переменная теперь содержит все элементы, которые раньше содержал объект arguments, вы можете получить доступ к каждому элементу с его соответствующим номером индекса, используя переменную args.

Сопутствующая статья - JavaScript Array

  • Проверьте, содержит ли массив значение в JavaScript
  • Удалить последний элемент из массива в JavaScript
  • JavaScript выбирает случайное значение из массива