110 of 264 menu

Método sort

El método sort realiza la ordenación de un array en orden lexicográfico y devuelve el array ya modificado. Como parámetro opcional se puede indicar una función propia para la ordenación.

Sintaxis

array.sort([función]);

Ejemplo

Vamos a ordenar un array:

let arr = ['d', 'b', 'a', 'c']; console.log(arr.sort());

Resultado de la ejecución del código:

['a', 'b', 'c', 'd']

Ejemplo

Vamos a ordenar un array con números:

let arr = [4, 1, 7, 2]; console.log(arr.sort());

Resultado de la ejecución del código:

[1, 2, 4, 7]

Ejemplo

Vamos a añadir números al array y ordenarlo:

let arr = [1, 123, 2, 4, 111, 7]; console.log(arr.sort());

Como resultado de la ejecución del código veremos que los números no se disponen en orden ascendente, sino en orden lexicográfico, es decir, los números se comparan entre sí como cadenas. En este caso, la comparación se realiza por cada carácter, si el código del primer carácter es mayor que el del adyacente, etc. Resultado:

[1, 111, 123, 2, 4, 7]

Ejemplo

Ahora vamos a ordenar el array con una función, en la que especificaremos la condición - si el primer parámetro es mayor que el segundo, entonces lo intercambiamos (para ello, en return cualquier número positivo). En el caso contrario, no se requiere intercambio y indicamos 0 o cualquier número negativo:

let arr = [1, 123, 2, 4, 111, 7]; arr.sort(function(a, b) { if (a > b) { return 1; } else { return -1; } }); console.log(arr);

Resultado de la ejecución del código:

[1, 2, 4, 7, 111, 123]

Ejemplo

Vamos a acortar el código por conveniencia en nuestra función del ejemplo anterior:

let arr = [1, 123, 2, 4, 111, 7]; arr.sort(function(a, b) { return a - b; }); console.log(arr);

Resultado de la ejecución del código:

[1, 2, 4, 7, 111, 123]

Ejemplo

Y ahora con la función vamos a ordenar el array en orden descendente:

let arr = [1, 123, 2, 4, 111, 7]; arr.sort(function(a, b) { return b - a; }); console.log(arr);

Resultado de la ejecución del código:

[123, 111, 7, 4, 2, 1]

Ejemplo

Vamos a ordenar un array de objetos por la clave 'one' en orden ascendente:

let arr = [ {one: 1, two: 2}, {one: 7, two: 1}, {one: 3, two: 3} ]; arr.sort(function(a, b) { return a.one - b.one; }); console.log(arr);

Resultado de la ejecución del código:

[ {one: 1, two: 2}, {one: 3, two: 3}, {one: 7, two: 1} ]

Ejemplo

Y ahora vamos a ordenar el array de objetos por la clave 'two':

let arr = [ {one: 1, two: 2}, {one: 7, two: 1}, {one: 3, two: 3} ]; arr.sort(function(a, b) { return a.two - b.two; }); console.log(arr);

Resultado de la ejecución del código:

[ {one: 7, two: 1}, {one: 1, two: 2}, {one: 3, two: 3} ]

Ejemplo

Vamos a comprobar si el array ha cambiado después de aplicar el método sort:

let arr = ['b', 'a', 'd', 'c']; let res = arr.sort(); console.log(arr);

Resultado de la ejecución del código:

['a', 'b', 'c', 'd']

Véase también

  • método filter,
    que permite filtrar elementos del array
Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar