Quando esistono riferimenti in un array, la copia superficiale copia solo gli indirizzi di riferimento. Quindi, se si apportano alcune modifiche in una copia, la modifica si rifletterà anche nell'altra copia; Man mano che le posizioni di memoria sono condivise. Puoi clonare gli elementi dell'array usando una copia profonda per evitare questa situazione.
Questo articolo discuterà i metodi per copiare elementi di array in JavaScript con l'aiuto di esempi appropriati.
Come copiare gli elementi di array in JavaScript
Gli array JavaScript sono considerati come Tipi di riferimento Ciò significa che se si assegna un array a un altro array utilizzando l'operatore di assegnazione "=", Assegnerà solo il riferimento dell'array originale e non copierà gli elementi dell'array.
Dopo l'assegnazione di riferimento, quando si aggiungono o modifichi gli elementi del secondo array, anche i primi elementi dell'array verranno interessati. Puoi avere una migliore comprensione con l'aiuto del seguente esempio:
Esempio
Ad esempio, abbiamo creato un array chiamato "uccelli"Avere i seguenti elementi:
var uccelli = ['pappagallo', 'Crow'];Nel prossimo passaggio, proveremo ad assegnare "uccelli" al "NEWBIRDS"Array usando il"="Operatore di assegnazione:
var newbirds = uccelli;Successivamente, aggiungeremo un nuovo elemento al "NEWBIRDS"Array con l'aiuto del metodo JavaScript Push ():
NEWBIRDS.push ("piccione")Infine, mostreremo gli elementi del "uccelli" E "NEWBIRDS"Elementi di array nella finestra della console:
console.registro (uccelli);L'output di seguito è indicato che quando hanno copiato il "uccelli"Elementi di array utilizzando l'operatore di assegnazione"=", Le modifiche apportate in seguito vengono applicate ad entrambi gli array:
A questo punto, hai capito che gli array sono considerati valori di riferimento in JavaScript, quindi quando si utilizza l'operatore di assegnazione, verrà copiato solo il riferimento dell'array originale, non gli elementi dell'array.
In JavaScript, puoi usare il "Copia superficiale" O "Copia profonda"Metodi per la copia di elementi di array. Questi termini suonano nuovi per te? Nessun problema! Li spiegheremo nelle prossime sezioni.
Copia superficiale in JavaScript
Una copia un po 'di un oggetto è chiamata copia superficiale.
IL Distribuisci operatore […], fetta(), E concat () Metodi consentono di fare elementi di array di copie superficiali in JavaScript.
Copia profonda in JavaScript
Se si desidera copiare gli elementi di un array multidimensionale, è necessario eseguire l'operazione di copia profonda per copiare gli elementi dell'array originale.
Il termine "Copia profonda"Si riferisce a una procedura di copia ricorsiva. In primo luogo, crea una nuova raccolta di oggetti e quindi copia ricorsivamente gli elementi dell'array specificati. Quindi, possiamo dire che, nel caso di una copia profonda, un array JavaScript completo viene copiato o clonato in un altro array e copia il primo livello e tutti gli elementi nidificati di un array multidimensionale.
JSON.Stringify () E JSON.parse () I metodi sono utilizzati per la copia dell'array multidimensionale, dove il JSON.Il metodo Stringify () convertirà l'oggetto specificato in String, che è possibile convertire in array con l'aiuto di JSON.Metodo Parse ().
Ora, controlliamo alcuni esempi pratici per la copia di array singoli e multidimensionali con i metodi di copia poco profondi e profondi menzionati.
Come copiare gli elementi di array in JavaScript utilizzando l'operatore di diffusione
In JavaScript, il "diffusione"L'operatore può essere utilizzato per copiare o diffondere gli elementi dell'array. Tre punti consecutivi ".. "Rappresenta l'operatore di diffusione. Ricorda che l'operatore di diffusione copierà solo gli elementi dell'array al livello uno e gli elementi nidificati vengono passati come riferimenti.
Sintassi dell'operatore di spread per copiare l'elemento array
var array2 = [... array1];Qui, l'operatore di diffusione copierà gli elementi di "Array1" A "Array2".
Esempio: come copiare gli elementi dell'array in JavaScript utilizzando l'operatore di diffusione
Prima di tutto, creeremo un nuovo array chiamato "uccelli"Avere due elementi:"Pappagallo" E "Corvo":
var uccelli = ['pappagallo', 'Crow'];Quindi, copriremo il "uccelli"Elementi di array a"NEWBIRDS" vettore:
var newbirds = [… uccelli];Inoltre, puoi verificare se si aggiunge un nuovo elemento in "NEWBIRDS"L'array modificherà il"uccelli"Array o no:
NEWBIRDS.push ("piccione")Come puoi vedere dall'output, abbiamo copiato con successo il "uccelli"Elementi di array a"NEWBIRDS"Array e spingendo nuovi elementi a"NEWBIRDS"Non hanno applicato alcuna modifica nel"uccelli" vettore:
Come copiare gli elementi dell'array nel metodo JavaScript usando Slice ()
Il metodo JavaScript Slice () viene utilizzato per copiare elementi di array in un altro oggetto o array. L'array originale non verrà modificato nel caso dell'utilizzo del metodo Slice ().
Sintassi del metodo Slice () per copiare gli elementi dell'array
var array2 = array1.fetta();Secondo la sintassi, il metodo Slice () copierà gli elementi di "Array1" In "Array2".
Esempio: come copiare gli elementi dell'array nel metodo JavaScript usando Slice ()
Nell'esempio seguente, utilizzeremo il "fetta()Metodo "per copiare il"uccelli"Elementi di array a"NEWBIRDS" vettore:
var uccelli = ['pappagallo', 'Crow'];Ora, spingendo nuovi elementi nel "NEWBIRDS"L'array non modificherà il"uccelli" vettore:
NEWBIRDS.push ("piccione")Ecco l'output che abbiamo ottenuto dall'esecuzione del programma di cui sopra:
Dall'output sopra offerto, si può vedere chiaramente che l'aggiunta di elementi nel "NEWBIRDS"L'array non ha influenzato gli elementi del"uccelli" vettore.
Come copiare gli elementi dell'array nel metodo JavaScript usando il metodo Concat ()
"concat ()"È un altro utile metodo JavaScript che può aiutarti a copiare elementi di array. Nel metodo Concat (), puoi prendere un array vuoto e copiare gli elementi di array originali su di esso. Creerà una nuova copia dell'array specificato.
Sintassi del metodo Concat () per copiare gli elementi dell'array
var array2 = [].concat (array1);Nella sintassi di cui sopra, il metodo Concat () copierà il "Array1"Elementi in un array vuoto [], e quindi il risultato verrà archiviato in"Array2".
Esempio: come copiare gli elementi dell'array nel metodo JavaScript usando il metodo Concat ()
Ora useremo il javascript "concat ()"Metodo per copiare gli elementi del"uccelli"Array a"NEWBIRDS":
var uccelli = ['pappagallo', 'Crow'];Successivamente, lo faremo spingere un nuovo elemento per “NEWBIRDS"Array e controlla se aggiorna il"uccelli"Array anche:
NEWBIRDS.push ("piccione")Dai un'occhiata all'output di seguito:
Come puoi vedere nell'output sopra dato, spingendo nuovi elementi in "NEWBIRDS"Array non ha modificato il"uccelli" vettore.
Come copiare elementi di array multidimensionali in javascript
Se si desidera copiare elementi da un array multidimensionale, puoi utilizzare il JSON.Stringify () e JSON.Metodi Parse (). Il json.Il metodo Stringify () convertirà l'oggetto specificato in una stringa, che può essere quindi convertita in un array con l'aiuto di JSON.Metodo Parse ().
Sintassi per copiare elementi di array multidimensionali
var array2 = json.Parse (JSON.stringify (array1));In primo luogo, il "JSON.Stringify ()"Il metodo convertirà"Array1"Stringi e poi lo analizzerà a un array (oggetto) usando"JSON.parse ()" metodo. Gli elementi dell'array restituiti verranno quindi copiati a "Array2".
Esempio: come copiare elementi di array multidimensionali in JavaScript
In questo esempio, abbiamo usato il JSON.Stringify () e JSON.Metodi Parse () per copiare gli elementi multidimensionali "uccelli"Array a"NEWBIRDS":
var birds = [name: 'parrot', name: 'Crow'];L'output di cui sopra significa che abbiamo copiato con successo gli elementi del "uccelli"Array a"NEWBIRDS".
Conclusione
Distribuisci operatore "[…]", fetta(), E concat () i metodi ti consentono poco profondo copia 1d elementi di array in javascript e per profondo Copia di array multidimensionali, JSON.Stringify () E JSON.parse () vengono utilizzati i metodi, in cui il JSON.Il metodo Stringify () convertirà l'oggetto specificato in String, che può essere analizzato in Array con JSON.Metodo Parse (). Questo articolo ha discusso dei metodi per copiare gli elementi dell'array in JavaScript.