Ich kopiere ein Array und ändere plötzlich beide

Lernfragen und Praxis · 2 Antworten

STARTBEITRAG

#1
javascript
const a = [1, 2];
const b = a;
b.push(3);

Warum hat a jetzt auch die 3? In meinem Kopf war b eine Kopie. Muss ich zum Kopieren echt jedes Element einzeln anfassen?

0

Antworten

2
Antwort auf das Thema
#2

a und b zeigen auf dasselbe Array. Für diese Zahlenliste reicht const b = [...a]. Damit hast du ein neues Array.

0
Antwort auf Antwort

Antwort auf #2 von syntaxkatze

a und b zeigen auf dasselbe Array. Für diese Zahlenliste reicht const b = [...a]. Damit hast du ein neues Array.
#3

Mit Objekten darin wäre das nur eine flache Kopie. Die inneren Objekte bleiben geteilt. Probier als zweiten Test [{ name: "A" }] und ändere b[0].name. Dann siehst du die nächste Grenze des Ansatzes.

0