Supongamos que quisiera una función de clasificación que devuelva una copia ordenada de la matriz ingresada. Intenté ingenuamente esto
function sort(arr) {
return arr.sort();
}
y lo probé con esto, lo que muestra que mi sortmétodo está mutando la matriz.
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"
También probé este enfoque
function sort(arr) {
return Array.prototype.sort(arr);
}
Pero no funciona en absoluto.
¿Existe una forma directa de evitar esto, preferiblemente una forma que no requiera mover manualmente mi propio algoritmo de clasificación o copiar cada elemento de la matriz en uno nuevo?
.sortrequiere que el thisvalor sea la matriz, por lo que para que el último fragmento funcione funcionaría .sort.call(arr)(aunque no resuelve su problema).