Angenommen, ich wollte eine Sortierfunktion, die eine sortierte Kopie des eingegebenen Arrays zurückgibt. Ich habe das naiv versucht
function sort(arr) {
return arr.sort();
}
und ich habe es damit getestet, was zeigt, dass meine sortMethode das Array mutiert.
var a = [2,3,7,5,3,7,1,3,4];
sort(a);
alert(a); //alerts "1,2,3,3,3,4,5,7,7"
Ich habe diesen Ansatz auch ausprobiert
function sort(arr) {
return Array.prototype.sort(arr);
}
aber es funktioniert überhaupt nicht.
Gibt es einen einfachen Weg, um dies zu umgehen, vorzugsweise einen Weg, bei dem nicht mein eigener Sortieralgorithmus von Hand gerollt oder jedes Element des Arrays in ein neues kopiert werden muss?
.sorterfordert, dass der thisWert das Array ist, damit das letzte Snippet funktioniert .sort.call(arr)(obwohl es Ihr Problem nicht löst).