Convertir argumentos en una matriz en JavaScript

  1. ¿Qué es el objeto arguments en JavaScript?
  2. Convierta el objeto arguments en una matriz utilizando los parámetros rest en JavaScript
  3. Convierta el objeto arguments en una matriz utilizando el método Array.from() en JavaScript
  4. Convierta el objeto arguments en una matriz utilizando array literals 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 una matriz, 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 una matriz.

El objeto arguments se puede convertir en una matriz 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 una matriz 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 una matriz, 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 matriz. Y ahora podemos usar varios métodos como ordenar o filtrar en esta matriz.

Convierta el objeto arguments en una matriz utilizando el método Array.from() en JavaScript

Otra forma de convertir el objeto de argumentos en una matriz es utilizar el método Array.from(). Aquí, tenemos que pasar el objeto de argumentos dentro del método from(), dándonos una matriz. Puede almacenar la matriz 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 de la matriz.

Convierta el objeto arguments en una matriz 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 una matriz, primero hemos tomado una matriz 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 la matriz 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.

Artículo relacionado - JavaScript Array

  • Agregar objeto a la matriz en JavaScript
  • Convertir matriz en objeto en JavaScript