Beim Umgang mit komplexen Datenstrukturen in JavaScript ist es oft hilfreich, stattdessen eine tiefe Kopie eines Arrays zu erstellen eine oberflächliche Referenz. Dadurch wird sichergestellt, dass Änderungen an der geklonten Kopie keine Auswirkungen auf das ursprüngliche Array haben und umgekehrt.
Verwenden von structureClone
Das moderne Der Ansatz zum tiefen Klonen eines Arrays verwendet die Methode „structuredClone“:
array2 = structuredClone(array1);
Diese Methode wird in den meisten modernen Versionen unterstützt Browsern und bietet einen zuverlässigen Deep-Clone-Mechanismus.
Wenn structureClone nicht verfügbar ist, können Sie eine JSON-basierte Technik verwenden:
let clonedArray = JSON.parse(JSON.stringify(nodesArray))
Dies Der Ansatz funktioniert für Objekte, die JSON-serialisierbar sind, was bedeutet, dass sie in einen JSON-String und zurück konvertiert werden können. Es ist jedoch möglicherweise nicht für komplexe Objekte mit Funktionen oder bestimmten Datentypen geeignet.
Bei flachen Objekten kann die Verwendung des Spread-Operators in Kombination mit der Karte eine bessere Leistung bieten:
clonedArray = nodesArray.map(a => ({...a}))
Diese Technik erstellt ein neues Objekt für jedes Element im Array und stellt so sicher, dass Änderungen am Klon keine Auswirkungen auf das haben Original.
Der beste Ansatz zum Klonen eines Arrays von Objekten hängt von Ihren spezifischen Anforderungen ab. Für eine zuverlässige Deep Copy wird StructuredClone empfohlen. Für JSON-serialisierbare Objekte bieten JSON.parse und JSON.stringify eine flexible Option. Bei flachen Objekten bieten der Spread-Operator und die Kartenmethode eine bessere Leistung.
Das obige ist der detaillierte Inhalt vonWie kann ich ein Array von Objekten in JavaScript tief klonen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!