Convertir argumentos en un array en JavaScript

Sahil Bhosale 12 octubre 2023
  1. ¿Qué es el objeto arguments en JavaScript?
  2. Convierta el objeto arguments en un array utilizando los parámetros rest en JavaScript
  3. Convierta el objeto arguments en un array utilizando el método Array.from() en JavaScript
  4. Convierta el objeto arguments en un array utilizando array literals en JavaScript
Convertir argumentos en un array en JavaScript

¿Qué es el objeto arguments en JavaScript?

Los arguments son un objeto que está presente dentro de cada función. Independientemente de los parámetros que pase a una función en JavaScript, esos parámetros se almacenan dentro de esta lista de argumentos en forma de objeto. Las claves de este objeto son números que comienzan desde cero. Para acceder a los valores presentes dentro del objeto arguments, podemos utilizar estas claves.

Este objeto arguments se puede utilizar como un array, pero no admite las funciones de JavaScript como forEach, sort, filter y map. Entonces, si desea utilizar estas funciones con el objeto de argumentos, debe convertir este objeto completo en un array.

El objeto arguments se puede convertir en un array de muchas formas diferentes. Nos centraremos en las formas más populares, como utilizar los parámetros rest, array.from() y array literals. Analicemos cada uno de ellos en detalle.

Convierta el objeto arguments en un array utilizando los parámetros rest en JavaScript

El parámetro rest permite que una función acepte un número variable de argumentos como entrada. Está representado por ...args. Aquí, en lugar de args puede dar cualquier nombre, y los puntos triples ... se conocen como el operador de propagación.

Ahora, siempre que pase ...args como parámetro a una función, esto convertirá el objeto de argumentos en un array, y ahora puede acceder al objeto de argumentos usando el nombre args.

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

func(1, 2, 3);

Producción :

[ 1, 2, 3 ]
1

En este ejemplo, pasamos los parámetros 1,2,3 como argumento a una función func(). Como hemos utilizado el operador rest, obtendremos el objeto arguments en forma de array. Y ahora podemos usar varios métodos como ordenar o filtrar en esta matriz.

Convierta el objeto arguments en un array utilizando el método Array.from() en JavaScript

Otra forma de convertir el objeto de argumentos en un array es utilizar el método Array.from(). Aquí, tenemos que pasar el objeto de argumentos dentro del método from(), dándonos un array. Puede almacenar el array resultante en una variable o incluso acceder directamente a los elementos dentro de esta matriz.

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

func(1, 2, 3);

Producción :

[ 1, 2, 3 ]
1

También hemos tomado el mismo ejemplo, pero la única diferencia es que estamos usando Array.from() y pasando el objeto arguments en lugar de usar un operador rest. Puede utilizar la indexación de matrices como Array.from (argumentos) [0] para acceder a los elementos individuales. Esto devolverá el primer elemento del array.

Convierta el objeto arguments en un array utilizando array literals en JavaScript

Una array literals es una lista que consta de cero o más elementos que comienzan con el número de índice cero. En array literals los elementos se encierran entre corchetes []. Aquí, se puede acceder a cada elemento con la ayuda de su número de índice.

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

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

func(1, 2, 3);

Producción :

[ 1, 2, 3 ]
3

Para convertir el objeto de argumentos en un array, primero hemos tomado un array vacía. En esa matriz, llamamos al método slice() usando el método call(). Ahora el método slice() iterará sobre el objeto que se pasa. En este caso, es el objeto arguments, y luego agregará todos los elementos dentro del objeto en el array vacía. Al final, almacenaremos el resultado de esto dentro de una variable, args.

Dado que esta variable ahora contiene todos los elementos que solía contener el objeto arguments, puede acceder a cada elemento con su número de índice apropiado utilizando la variable args.

Sahil Bhosale avatar Sahil Bhosale avatar

Sahil is a full-stack developer who loves to build software. He likes to share his knowledge by writing technical articles and helping clients by working with them as freelance software engineer and technical writer on Upwork.

LinkedIn

Artículo relacionado - JavaScript Array