Il costruttore Array può essere richiamata in due modi: un elenco di valori da utilizzare come valori per gli elementi di matrice, oppure con un valore numerico che dà la lunghezza iniziale:
var myArray = new Array("hello", "world"); // 2 elements
var otherArray = new Array(100); // 100 elements, all empty
Poiché c'è un'ambiguità quando viene passato solo un numero, quella vecchia API è considerata mal progettata. Così, c'è Array.of()
, che è la stessa della prima opzione per la costruzione Array:
var otherArray = Array.of(100); // 1 element
Il terzo modo per rendere una matrice è con un'espressione di inizializzazione array:
var otherArray = [100]; // 1 element
Le istanze di matrice che sono creati da ciascuno dei precedenti sono funzionalmente equivalenti e completamente intercambiabili.
Un'ultima cosa: perché deve esistere Array.of()
, poiché è possibile utilizzare l'espressione di inizializzazione dell'array? Bene, Array.of()
è una funzione, quindi può essere utilizzato come valore applicato nella programmazione in stile funzionale. (Come ad esempio un po 'muto) È possibile copiare un array con:
var copy = Array.of.apply(Array, original);
Una ragione che è muto è che c'è anche (in ES2015) Array.from()
a fare la stessa cosa:
var copy = Array.from(original);
Che lavora su qualsiasi tipo di originale iterabile, quindi è un buon modo per trasformare arguments
o NodeList in un array.
Il MDN site ha la documentazione su Array.of()
. Il costruttore e il modulo di inizializzazione dell'array sono in circolazione da sempre, quindi qualsiasi riferimento JavaScript coprirà quelli (sebbene possibilmente senza riferimento a Array.of()
).
ho già visto, forse la mia domanda era chiara sto cercando una spiegazione pratica dei casi d'uso, invece di una semplice documentazione di tagliare & incolla. @AmmarCSE grazie per questo comunque –