JavaScript Array sort()

Definición y uso

sort() El método ordena los elementos del array.

El orden de clasificación puede ser alfabético o numérico, también puede ser ascendente (hacia arriba) o descendente (hacia abajo).

Por defecto,sort() El método ordena los valores como cadenas de caracteres en orden alfabético y ascendente.

Esto se aplica a las cadenas de caracteres ("Apple" aparece antes de "Banana"). Pero, si los números se ordenan como cadenas de caracteres, "25" es mayor que "100" porque "2" es mayor que "1".

Por lo tanto,sort() El método produce resultados incorrectos al ordenar números.

Puede resolver este problema proporcionando una "función de comparación" (consulte los "valores de parámetros" a continuación).

Comentarios:sort() El método cambiará el array original.

Ejemplo

Ejemplo 1

Ordene el array:

var fruits = ["Banana", "Naranja", "Manzana", "Mango"];
fruits.sort();

Prueba por tu cuenta

Ejemplo 2

Por orden ascendente, ordene los números del array:

var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return a-b});

Prueba por tu cuenta

Ejemplo 3

Por orden descendente, ordene los números del array:

var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return b-a});

Prueba por tu cuenta

Ejemplo 4

Obtener el valor mínimo del arreglo:

var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return a-b});    // Ordena los números del arreglo en orden ascendente
// El primer elemento del arreglo (points[0]) ahora es el valor más bajo

Prueba por tu cuenta

Ejemplo 5

Obtener el valor máximo del arreglo:

var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return b-a});    // Ordena los números del arreglo en orden descendente
// El primer elemento del arreglo (points[0]) ahora es el valor más alto

Prueba por tu cuenta

Ejemplo 6

Obtener el valor máximo del arreglo:

const points = [40, 100, 1, 5, 25, 10];
// Ordena los números en orden ascendente:
points.sort(function(a, b){return a-b});
// points[points.length-1] = 100 (valor más alto)

Prueba por tu cuenta

Ejemplo 7

Ordena el arreglo en orden alfabético y luego invierte el orden de los elementos ordenados (descendente):

var fruits = ["Banana", "Naranja", "Manzana", "Mango"];
fruits.sort();
fruits.reverse();

Prueba por tu cuenta

Sintaxis

array.sort(compareFunction)

Valor del parámetro

Parámetros Descripción
compareFunction

Opcional. Define una función que reemplaza el orden de clasificación. Esta función debe devolver un valor negativo, cero o positivo según los parámetros, por ejemplo:

  • function(a, b){return a-b}

Al comparar dos valores con el método sort(), se envían los valores a la función de comparación y se ordenan según el valor devuelto (negativo, cero, positivo).

Ejemplo:

Al comparar 40 y 100, el método sort() llama a la función de comparación (40, 100).

Esta función calcula 40-100 y devuelve -60 (valor negativo).

La función sort() colocará 40 antes de 100 en el valor.

Detalles técnicos

Valor devuelto: Objeto Arreglo, cuyos elementos están ordenados.
Versión de JavaScript: ECMAScript 1

Compatibilidad del navegador

Todos los navegadores lo soportan completamente sort() Método:

Chrome IE Edge Firefox Safari Opera
Chrome IE Edge Firefox Safari Opera
Soporte Soporte Soporte Soporte Soporte Soporte

Páginas relacionadas

Tutoriales:JavaScript Arreglo

Tutoriales:Const de arrays de JavaScript

Tutoriales:Métodos de arrays de JavaScript

Tutoriales:Ordenar arrays de JavaScript

Tutoriales:Iteración de arrays de JavaScript

Manual:Método reverse() del Array de JavaScript