Dies scheint wie eine einfache Frage, aber ich kann nicht viele Informationen dazu finden.Speichern Sie das Ergebnis von array.sort in einer anderen Variablen
var array1 = new Array(4, 3, 1, 2, 0, 5);
var array2 = array1;
array2.sort(function(a, b) {
return a - b;
})
Erwartetes Verhalten: array2 sortiert und array1 ist in der ursprünglichen Reihenfolge mit 4.
Tatsächliche Ergebnisse, beginnend: beide Arrays sortiert werden.
Wie kann ich array1 sortieren - während array1 beibehalten und die Ergebnisse der Sortierung in array2 gespeichert werden? Ich dachte, dass array2 = array1
die Variable kopieren würde, nicht auf sie verweisen. In der Firefox-Konsole erscheinen beide Arrays jedoch sortiert.
'var array2 hilft = array1.slice(); ' – Tushar
Warum ist das Standardverhalten der Verweis auf das ursprüngliche Array, anstatt es zu kopieren? – tomysshadow
http://stackoverflow.com/questions/7486085/copying-array-by-value-in-javascript. Einige Methoden führen Änderungen in Referenz aus, einige erstellen neue Arrays. Überprüfen Sie die Array-Dokumentation. –