Converti argomenti in un array in JavaScript
-
Che cos’è l’oggetto
arguments
in JavaScript? -
Converti l’oggetto
arguments
in un array usando i parametrirest
in JavaScript -
Converti l’oggetto
arguments
in un array usando il metodoArray.from()
in JavaScript -
Converti l’oggetto
arguments
in un array usandoArray literals
in JavaScript
Che cos’è l’oggetto arguments
in JavaScript?
Gli arguments
sono un oggetto presente all’interno di ogni funzione. Qualunque siano i parametri passati a una funzione in JavaScript, quei parametri vengono memorizzati all’interno di questo elenco di argomenti sotto forma di oggetto. Le chiavi di questo oggetto sono numeri che iniziano da zero. Per accedere ai valori presenti all’interno dell’oggetto arguments
, possiamo utilizzare questi tasti.
Questo oggetto arguments
può essere utilizzato come array, ma non supporta le funzioni JavaScript come forEach
, sort
, filter
e map
. Quindi, se si desidera utilizzare queste funzioni con l’oggetto arguments, è necessario convertire l’intero oggetto in un array.
L’oggetto arguments
può essere convertito in un array in molti modi diversi. Ci concentreremo sui modi più popolari come l’utilizzo dei parametri rest
, array.from()
e array literals
. Discutiamo ciascuno di essi in dettaglio.
Converti l’oggetto arguments
in un array usando i parametri rest
in JavaScript
Il parametro rest
consente a una funzione di accettare un numero variabile di argomenti come input. È rappresentato da ...args
. Qui, al posto di args
puoi dare qualsiasi nome, e il triplo punto ...
è noto come operatore di diffusione.
Ora, ogni volta che passi ...args
come parametro a una funzione, questo convertirà l’oggetto arguments in un array e ora puoi accedere all’oggetto arguments usando il nome args
.
function func(...args) {
console.log(args);
console.log(args[0]);
}
func(1, 2, 3);
Produzione:
[ 1, 2, 3 ]
1
In questo esempio, passiamo i parametri 1,2,3
come argomento a una funzione func()
. Poiché abbiamo utilizzato l’operatore rest
, otterremo l’oggetto arguments
sotto forma di array. E ora possiamo usare vari metodi come ordinare o filtrare su questo array.
Converti l’oggetto arguments
in un array usando il metodo Array.from()
in JavaScript
Un altro modo per convertire l’oggetto arguments in un array è utilizzare il metodo Array.from()
. Qui, dobbiamo passare l’oggetto arguments all’interno del metodo from()
, dandoci un array. Puoi memorizzare l’array risultante in una variabile o persino accedere direttamente agli elementi all’interno di questo array.
function func() {
console.log(Array.from(arguments));
console.log(Array.from(arguments)[0]);
}
func(1, 2, 3);
Produzione:
[ 1, 2, 3 ]
1
Abbiamo anche preso lo stesso esempio, ma l’unica differenza è che stiamo usando Array.from()
e passando l’oggetto arguments
invece di usare un operatore rest
. È possibile utilizzare l’indicizzazione di array come Array.from(arguments)[0]
per accedere ai singoli elementi. Questo restituirà il primo elemento dell’array.
Converti l’oggetto arguments
in un array usando Array literals
in JavaScript
Un array literals
è un elenco che consiste di zero o più elementi che iniziano con il numero di indice zero. In array literals
gli elementi sono racchiusi tra parentesi quadre []
. Qui è possibile accedere a ogni elemento con l’aiuto del suo numero di indice.
function func() {
let args = [].slice.call(arguments);
console.log(args);
console.log(args[2]);
}
func(1, 2, 3);
Produzione:
[ 1, 2, 3 ]
3
Per convertire l’oggetto arguments in un array, abbiamo prima preso un array vuoto. Su quell’array, chiamiamo il metodo slice()
usando il metodo call()
. Ora il metodo slice()
itera sull’oggetto che viene passato. In questo caso, è l’oggetto arguments
, quindi aggiungerà tutti gli elementi all’interno dell’oggetto nell’array vuoto. Alla fine, memorizzeremo il risultato di questo all’interno di una variabile, args
.
Poiché questa variabile ora contiene tutti gli elementi che l’oggetto arguments
conteneva, è possibile accedere a ogni elemento con il suo numero indice appropriato utilizzando la variabile 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