Convertir argumentos en un array en JavaScript
-
¿Qué es el objeto
arguments
en JavaScript? -
Convierta el objeto
arguments
en un array utilizando los parámetrosrest
en JavaScript -
Convierta el objeto
arguments
en un array utilizando el métodoArray.from()
en JavaScript -
Convierta el objeto
arguments
en un array 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 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 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