Was sind flaches und tiefes Klonen? Flaches Klonen: Weisen Sie den im Stapel gespeicherten Wert direkt der entsprechenden Variablen zu. Wenn es sich um einen Basisdatentyp handelt, wird der entsprechende Wert direkt zugewiesen. Wenn es sich um einen Referenztyp handelt, wird die Adresse zugewiesen. 1. Klonen Sie das Array1.1 Oberflächliches KlonenVerwenden Sie eine For-Schleife, um einen oberflächlichen Klon durchzuführen. var arr1 = ['demo', 1, 2]; var arr2 = []; // Oberflächlicher Klon des Arrays für (var i = 0; i < arr1.length; i++) { arr2[i] = arr1[i]; } Konsole.log(arr2); Konsole.log(arr1 == arr2); Ausgabe:
1.2 Tiefes KlonenVerwenden Sie Rekursion für tiefes Klonen. Funktion deepClone(o) { var Ergebnis = []; für (var i = 0; i < o.Länge; i++) { Ergebnis.push(deepClone(o[i])); } Ergebnis zurückgeben; } 2. Klonen von Nicht-Array-Objekten2.1 Oberflächliches KlonenVerwenden Sie eine For-Schleife, um einen oberflächlichen Klon durchzuführen. var obj1 = { a: 1, b: 2, c: 3, d: [4, 5, { e: 'demo' }] }; var obj2 = {}; // Oberflächlicher Klon des Objekts für (var i in obj1) { obj2[i] = obj1[i]; } konsole.log(obj2); console.log(obj1 == obj2); Ausgabe:
2.2 Tiefes KlonenVerwenden Sie Rekursion für tiefes Klonen. Funktion deepClone(o) { var Ergebnis = {}; für (var i in o) { Ergebnis[i] = deepClone(o[i]); } Ergebnis zurückgeben; } 3. Integrieren Sie die Deep-Clone-Funktionvar obj1 = { a: 1, b: 2, c: 3, d: [4, 5, { e: 'demo' }] }; var arr1 = ['demo', 1, 2]; // Tiefe Klonfunktion deepClone(o) { wenn (Array.isArray(o)) { // ist ein Array var result = []; für (var i = 0; i < o.Länge; i++) { Ergebnis.push(deepClone(o[i])); } } sonst wenn (Typ von o == 'Objekt') { // Kein Array, sondern ein Objekt var result = {}; für (var i in o) { Ergebnis[i] = deepClone(o[i]); } } anders { // Basistypwert var result = o; } Ergebnis zurückgeben; } console.log(deepClone(arr1)); console.log(deepClone(obj1)); Damit ist dieser Artikel über die detaillierten Prinzipien des tiefen und flachen Klonens von JavaScript-Arrays und Nicht-Array-Objekten abgeschlossen. Weitere relevante Inhalte zu JavaScript-Arrays finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die verwandten Artikel weiter unten. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Detaillierte Erklärung zu MySQL und Springs Autocommit
>>: Detailliertes Tutorial zur Installation von Tomcat8.5 in einer Centos8.2-Cloud-Serverumgebung
Legen Sie Ihr eigenes Webprojekt im Verzeichnis w...
Voraussetzungen Ein Cloud-Server (centOS von Alib...
Inhaltsverzeichnis Vorwort 1. Intranet DNS A-Eint...
Inhaltsverzeichnis Erster Schritt: Der zweite Sch...
1. Beenden Sie den MySQL-Dienst # service mysqld ...
Im Artikel MySQL-Optimierung: Cache-Optimierung w...
prune Um diesen Befehl verwenden zu können, müsse...
Was sind XHTML-Tags? XHTML-Tag-Elemente sind die ...
Inhaltsverzeichnis 1. Installieren und importiere...
Warum sollten wir CSS-Animationen anstelle von JS...
Seit Kurzem besteht im Projekt die Anforderung, B...
In diesem Artikel wird der spezifische Code des J...
Die im Internet gefundene Methode funktioniert Die...
Inhaltsverzeichnis Überblick Was sind Rückrufe od...
Hauptsächlich verwendete Wissenspunkte: •CSS3 3D-...