Sort
El método sort
ordena los elementos de una matriz en un orden específico (ascendente o descendente). De forma predeterminada, el método sort
ordena los elementos como cadenas y los organiza en orden ascendente según sus valores de unidad de código UTF-16.
Aquí está la sintaxis para usar sort
:
matriz.sort([funcionDeComparacion]);
El argumento funcionDeComparacion
es opcional y especifica una función que define el orden de clasificación. Si se omite, los elementos se ordenan en orden ascendente según su representación en cadena.
Por ejemplo:
let ciudades = ["California", "Barcelona", "Paris", "Kathmandu"];
let ciudadesOrdenadas = ciudades.sort();
console.log(ciudadesOrdenadas);
// Resultado: ['Barcelona', 'California', 'Kathmandu', 'Paris']
Los números se pueden ordenar incorrectamente cuando se ordenan. Por ejemplo, "35" es mayor que "100", porque "3" es mayor que "1".
Para solucionar el problema de clasificación en números, se utilizan funciones de comparación. Las funciones de comparación definen el orden de clasificación y devuelven un valor negativo, cero o positivo según argumentos, como este:
- Un valor negativo si
a
debe ordenarse antes queb
- Un valor positivo si
a
debe ordenarse después deb
0
sia
yb
son iguales y su orden no importa
const puntos = [40, 100, 1, 5, 25, 10];
puntos.sort((a, b) => {return a-b});
// Resultado: [1, 5, 10, 25, 40, 100]
El método sort()
anula la matriz original.