El objeto arguments es un objeto similar a una array que representa los argumentos que se pasan al invocar una función. Este objeto similar a una array no tiene la string prototipo de array, por lo tanto, no puede usar ninguno de los métodos de array. Este objeto se puede convertir en una array adecuada utilizando dos enfoques:
Método 1: Usar el método Array.from(): El método Array.from() se puede usar para crear una nueva array que sea una copia superficial de un objeto similar a una array o iterable. Contiene tres parámetros que consisten en un objeto similar a una array que se convertirá, una función de mapa opcional que se puede llamar en cada elemento de la array y un argumento «este» que se puede usar con la función de mapa. El objeto arguments se pasa como argumento a este método y devolverá la forma de array del objeto. Esta array tiene la string de prototipos de array y se puede utilizar con varios métodos de array. Sintaxis:
argumentsArray = Array.from(arguments)
Ejemplo:
html
<!DOCTYPE html> <html> <head> <title> How to convert arguments object into an array in JavaScript? </title> </head> <body> <h1 style="color: green"> GeeksforGeeks </h1> <b> How to convert arguments object into an array in JavaScript? </b> <p> Click on the button to convert the arguments object to an Array and also use the Array join() method. </p> <p>The arguments passed are '1, "Two", 3'</p> <button onclick="convertToArray(1, 'Two', 3)"> Convert to Array </button> <script type="text/javascript"> function convertToArray(a, b, c) { console.log("The arguments object:") console.log(arguments); argumentsArray = Array.from(arguments); console.log("The arguments object as array:") console.log(argumentsArray); // Example of using the join() method joinedArray = argumentsArray.join(', '); console.log("Using join() on array: ", joinedArray); } </script> </body> </html>
Producción:
- Monitor:
- Consola:
Método 2: Usar el método Array.prototype.slice(): El método Array.prototype.slice() se usa para devolver una parte de una array a un nuevo objeto de array. Esta array sería una copia superficial de la array original. Este método tiene dos argumentos opcionales que indican el índice inicial y final de la array. Si se omiten los argumentos, los índices se establecen en el primer y último índice de la array. Este método se puede usar para convertir el objeto de argumentos vinculando este método al objeto. El enlace se realiza utilizando la función call() y pasando el objeto similar a una array como argumento. Devolverá una forma de array del objeto de argumentos. Esta array tiene la string de prototipos de array y se puede utilizar con varios métodos de array. Sintaxis:
argumentsArray = Array.prototype.slice.call(arguments)
Ejemplo:
html
<!DOCTYPE html> <html> <head> <title> How to convert arguments object into an array in JavaScript? </title> </head> <body> <h1 style="color: green"> GeeksforGeeks </h1> <b> How to convert arguments object into an array in JavaScript? </b> <p> Click on the button to convert the arguments object to an Array and also use the Array join() method. </p> <p>The arguments passed are '1, "Two", 3'</p> <button onclick="convertToArray(1, 'Two', 3)"> Convert to Array </button> <script type="text/javascript"> function convertToArray(a, b, c) { console.log("The arguments object:") console.log(arguments); argumentsArray = Array.prototype.slice.call(arguments); console.log("The arguments object as array:") console.log(argumentsArray); // Example of using the join() method joinedArray = argumentsArray.join(', '); console.log("Using join() on array: ", joinedArray); } </script> </body> </html>
Producción:
- Monitor:
- Consola:
Método n.º 3: uso del operador de extensión: el operador de extensión permite que un iterable se expanda en el lugar donde se esperan más de 0 argumentos. Este operador expande los argumentos en su lugar y usamos corchetes para capturarlos y hacer una array con ellos. Expandiremos el objeto de argumentos en su lugar y formaremos una array con ellos.
Sintaxis:
var Array_obj = [...arguments];
Ejemplo:
HTML
<!DOCTYPE html> <html> <head> <title> How to convert arguments object into an array in JavaScript? </title> </head> <body> <h1 style="color: green"> GeeksforGeeks </h1> <b> How to convert arguments object into an array in JavaScript? </b> <p> Click on the button to convert the arguments object to an Array and also use the Array join() method. </p> <p>The arguments passed are '1, "Two", 3'</p> <button onclick="convertToArray(1, 'Two', 3)"> Convert to Array </button> <script type="text/javascript"> function convertToArray(a, b, c) { console.log("The arguments object:") console.log(arguments); argumentsArray = [...argument]; console.log("The arguments object as array:") console.log(argumentsArray); // Example of using the join() method joinedArray = argumentsArray.join(', '); console.log("Using join() on array: ", joinedArray); } </script> </body> </html>
Producción:
- Pantalla de la consola:
Publicación traducida automáticamente
Artículo escrito por sayantanm19 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA