Converti argomenti in un array in JavaScript

Sahil Bhosale 12 ottobre 2023
  1. Che cos’è l’oggetto arguments in JavaScript?
  2. Converti l’oggetto arguments in un array usando i parametri rest in JavaScript
  3. Converti l’oggetto arguments in un array usando il metodo Array.from() in JavaScript
  4. Converti l’oggetto arguments in un array usando Array literals in JavaScript
Converti argomenti in un array 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 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

Articolo correlato - JavaScript Array