JavaScript zum tiefen Kopieren einer Zeichenkette zwingen
- Was ist Deep Copy?
- So kopieren Sie eine Zeichenfolge in JavaScript
- So kopieren Sie eine Zeichenfolge in JavaScript tief
In diesem Artikel wird erläutert, was eine tiefe Kopie ist, wie eine Zeichenfolge kopiert und eine Zeichenfolge in JavaScript tief kopiert wird. Wir werden auch den Hauptunterschied zwischen ihnen angehen.
Was ist Deep Copy?
Bei einer tiefen Kopie wird das gesamte Zeichenkettenobjekt dupliziert und in einem anderen Zeichenkettenobjekt gespeichert. Alle Inhalte des ursprünglichen String-Objekts werden kopiert und im neuen String-Objekt gespeichert.
In der Kopie wird jedoch die ursprüngliche Adresse gespeichert und jedes Mal darauf zugegriffen, wenn wir auf das kopierte Zeichenkettenobjekt zugreifen.
So kopieren Sie eine Zeichenfolge in JavaScript
Wenn Sie einen String kopieren, wird seine Adresse in der angegebenen String-Variablen in JavaScript gespeichert. Schauen wir uns dieses Codesegment an, um das Konzept besser zu verstehen.
let original_string = 'Hello';
var string_copy = (' ' + original_string).slice(1);
Wie Sie sehen können, gab es in diesem Codesegment eine Variable namens original_string
, die einen String-Wert Hello
hatte.
Nach einem Leerzeichen ' '
wird der Original-String als Referenz verwendet. Diese Verkettung führt zu einer Zeichenkettenkopie in der Implementierung des Browsers.
So kopieren Sie eine Zeichenfolge in JavaScript tief
In der erwähnten Erklärung des Deep-Copy-Code-Segments haben wir eine String-Prototypfunktion namens Slice verwendet, also lassen Sie uns zuerst die Prototypfunktion slice()
erklären.
Die Methode slice
wird in JavaScript verwendet, um einen Teil eines Strings als neuen String abzurufen, ohne den ursprünglichen String zu verändern. Sehen wir uns dieses Codesegment an, in dem wir slice()
verwendet haben:
let str = 'Sliced_String';
let res = str.slice(0, 5);
console.log(res);
Ausgabe:
Slice
Die ersten fünf Zeichen aus der Zeichenfolge wurden extrahiert und als Ausgabe auf der Konsole angezeigt. Beachten Sie hier, dass die Argumente hier mit 0
indiziert sind; daher wird das 6. Zeichen nicht extrahiert.
Alternativ können Sie keine Argumente angeben, die die gesamte Zeichenfolge als neue Zeichenfolge zurückgeben.
Kommen Sie nun zurück zur Deep-Copy-Erklärung.
Wie oben erwähnt, dupliziert die tiefe Kopie in JavaScript das gesamte JavaScript-String-Objekt und speichert es in einer angegebenen String-Konstante oder -Variablen. Schauen wir uns dieses Codesegment an, in dem wir ein JavaScript-String-Objekt tief in eine Konstante kopiert haben.
const str = 'I am showing an example';
const new_str = str.slice();
console.log(new_str);
Im obigen Codesegment verwendet das Programm nicht die Referenz der ursprünglichen Zeichenfolge, sondern kopiert jedes Zeichen der ursprünglichen Zeichenfolge in die neue Zeichenkettenvariable.
Wie oben erklärt, extrahierte die Funktion slice()
den gesamten String aus der Konstante str
und gab ihn als neuen String in die Konstante new_str
zurück. Diese neue Konstante wurde als Ausgabe in der letzten Zeile des Codesegments mit einem console.log()
angezeigt.