Was fehlt mir beim Verständnis von Arrays?

8

Wenn Arrays einer anderen Variablen zugewiesen werden, wird die Referenz im Gegensatz zu Werten übergeben. Dies wird bestätigt, wenn Sie zwei Arrays mit dem Operator == vergleichen und true

zurückgibt %Vor%

Bei den obigen Eingaben mutiert das Array b , wenn ich es modifiziere, das Array a , aber nicht c .

%Vor%

Aber wenn ich das unten mache, mutiert es c .

%Vor%

Warum passiert das? Dieses Verhalten tritt bei der Verwendung von Array-Methoden auf, die das Array mutieren.

    
Harish 30.05.2015, 08:18
quelle

1 Antwort

14

.concat() erstellt eine flache Kopie. Also nach der Zeile:

%Vor%

c und a verweisen auf verschiedene Arrays, aber c[0] und b[0] und a[0] verweisen alle auf dasselbe Array.

Zitieren von MDN :

  

concat kopiert Objektreferenzen in das neue Array. Sowohl das ursprüngliche als auch das neue Array beziehen sich auf dasselbe Objekt. Das heißt, wenn ein referenziertes Objekt geändert wird, sind die Änderungen für das neue und das ursprüngliche Array sichtbar.

    
nnnnnn 30.05.2015, 08:25
quelle

Tags und Links