Array ()

Un array è un elenco ordinato di valori tipicamente creati con l'intenzione di eseguire il ciclo di valori indicizzati numericamente, iniziando con lo zero dell'indice. Quello che devi sapere è che gli array sono insiemi ordinati numericamente, al contrario degli oggetti che hanno nomi di proprietà associati a valori in ordine non numerico. Essenzialmente, gli array usano numeri come chiave di ricerca, mentre gli oggetti hanno nomi di proprietà definiti dall'utente. JavaScript non ha veri array associativi, ma gli oggetti possono essere utilizzati per ottenere la funzionalità di array associativi.

Nel seguente esempio, memorizzo quattro stringhe in myArray a cui posso accedere utilizzando un indice numerico. Io confronto e contrasto myArray a un oggetto letterale che imita un array associativo.

Esempio: sample133.html

 

Le matrici possono contenere qualsiasi tipo di valori e questi valori possono essere aggiornati o cancellati in qualsiasi momento.

Se hai bisogno di un hash (noto anche come array associativo), un oggetto è la soluzione più vicina.

Un Array () è solo un tipo speciale di Oggetto(). Questo è, Array () le istanze sono fondamentalmente Oggetto() istanze con un paio di funzioni extra (.lunghezza e un indice numerico incorporato).

I valori contenuti in un array vengono comunemente definiti elementi.


Array () parametri

È possibile passare i valori di un'istanza dell'array al costruttore come parametri separati da virgole (nuovo array ('foo', 'bar');). Il Array () costruttore può richiedere fino a 4.294.967.295 parametri.

Tuttavia, se viene inviato un solo parametro a Array () costruttore e quel valore è un numero intero ('1', '123' o '1.0'), sarà usato per impostare il lunghezza dell'array e non verrà utilizzato come valore contenuto all'interno dell'array.

Esempio: sample134.html

 

Array () Proprietà e metodi

Il Array () oggetto ha le seguenti proprietà (escluse proprietà e metodi ereditati):

Proprietà (Array.prototype):

  • prototipo

Proprietà e metodi delle istanze dell'oggetto della matrice

Le istanze di oggetti array hanno le seguenti proprietà e metodi (esclusi i metodi e le proprietà ereditate):

Proprietà istanza (var myArray = ['foo', 'bar']; myArray.length;):

  • costruttore
  • lunghezza

Metodi di istanza (var myArray = ['foo']; myArray.pop ();):

  • pop()
  • Spingere()
  • inverso()
  • cambio()
  • ordinare()
  • splice ()
  • unshift ()
  • concat ()
  • aderire()
  • fetta()

Creare matrici

Come la maggior parte degli oggetti in JavaScript, un oggetto array può essere creato usando il nuovo operatore in congiunzione con il Array () costruttore, o usando la sintassi letterale.

Nel seguente esempio, creo il MyArray1 array con valori predefiniti usando il Array () costruttore, e poi myArray2 usando la notazione letterale.

Esempio: sample135.html

 

È più comune vedere una matrice definita usando la sintassi letterale, ma si deve notare che questa scorciatoia sta semplicemente nascondendo l'uso del Array () costruttore.

In pratica, la matrice letterale è in genere tutto ciò di cui avrete bisogno.

Indipendentemente da come viene definito un array, se non si forniscono valori predefiniti all'array, verrà comunque creato ma semplicemente non contiene valori.


Aggiunta e aggiornamento dei valori nelle matrici

Un valore può essere aggiunto a un array in qualsiasi indice, in qualsiasi momento. Nell'esempio che segue, aggiungiamo un valore all'indice numerico 50 di un array vuoto. Che dire di tutti gli indici prima dei 50? Bene, come ho detto, è possibile aggiungere un valore a un array in qualsiasi indice, in qualsiasi momento. Ma se aggiungi un valore all'indice numerico 50 di un array vuoto, JavaScript riempirà tutti gli indici necessari prima di esso con non definito valori.

Esempio: sample136.html

 

Inoltre, considerando la natura dinamica di JavaScript e il fatto che JavaScript non è fortemente digitato, un valore di matrice può essere aggiornato in qualsiasi momento e il valore contenuto nell'indice può essere qualsiasi valore legale. Nel seguente esempio, modifico il valore sull'indice numerico 50 su un oggetto.

Esempio: sample137.html

 

Lunghezza vs. Indice

Un array inizia a indicizzare i valori a zero. Ciò significa che il primo slot numerico per contenere un valore in un array è simile myArray [0]. Questo può essere un po 'confuso se creo un array con un singolo valore, l'indice del valore è 0 mentre la lunghezza dell'array è 1. Assicurati di capire che la lunghezza di un array rappresenta il numero di valori contenuti all'interno dell'array , mentre l'indice numerico dell'array inizia da zero.

Nell'esempio seguente, il valore della stringa blu è contenuto nel myArray array con l'indice numerico 0, ma poiché la matrice contiene un valore, la lunghezza dell'array è 1.

Esempio: sample138.html

 

Definire gli array con un predefinito lunghezza

Come ho detto prima, passando un singolo parametro intero su Array () costruttore, è possibile predefinire la lunghezza degli array o il numero di valori che conterrà. In questo caso, il costruttore fa un'eccezione e presuppone di voler impostare la lunghezza dell'array e non precompilare l'array con i valori.

Nel prossimo esempio, impostiamo il myArray array con una lunghezza predefinita di 3. Di nuovo, stiamo configurando la lunghezza dell'array, non passandogli un valore da memorizzare nell'indice 0.

Esempio: sample139.html

 

Fornire un predefinito lunghezza darà a ciascun indice numerico, fino alla lunghezza specificata, un valore associato di non definito.

Ci si potrebbe chiedere se sia possibile creare un array predefinito contenente un solo valore numerico. Sì, è usando la forma letterale var myArray = [4].


L'impostazione della lunghezza dell'array può aggiungere o rimuovere valori

Il lunghezza la proprietà di un oggetto array può essere utilizzata per ottenere o impostare la lunghezza di un array. Come mostrato in precedenza, l'aggiunta della lunghezza maggiore del numero effettivo di valori contenuti nell'array non definito valori alla matrice. Quello che potresti non aspettarti è che puoi effettivamente rimuovere i valori da una matrice impostando il valore della lunghezza su un numero inferiore al numero di valori contenuti nella matrice.

Esempio: sample140.html

 

Array contenenti altri array (ovvero matrici multidimensionali)

Poiché un array può contenere qualsiasi valore JavaScript valido, un array può contenere altri array. Al termine, l'array contenente gli array incapsulati viene considerato un array multidimensionale. L'accesso agli array incapsulati viene eseguito tramite concatenazione delle parentesi. Nell'esempio seguente, creiamo un array letterale che contiene un array, all'interno del quale creiamo un altro array letterale, all'interno del quale creiamo un altro array letterale, contenente un valore di stringa sull'indice 0.

Esempio: sample141.html

 

Questo esempio di codice è piuttosto sciocco, ma si ha l'idea che gli array possano contenere altri array e che sia possibile accedere agli array incapsulati indefinitamente.


In loop su una matrice, avanti e indietro

Il modo più semplice e probabilmente il modo più rapido per eseguire il loop su un array è utilizzare il ciclo while.

Nel seguente codice, effettuiamo il ciclo dall'inizio dell'indice alla fine.

Esempio: sample142.html

 

E ora passiamo dalla fine dell'indice all'inizio.

Esempio: sample143.html

 

Conclusione

Ora, se ti stai chiedendo perché non sto mostrando i loop qui, è perché i loop hanno meno parti mobili e credo che siano più facili da leggere.

E questo completa questo articolo sugli array.