110 of 264 menu

Método sort

O método sort realiza a ordenação de um array em ordem lexicográfica e retorna o array já modificado. Um parâmetro opcional permite especificar uma função personalizada para a ordenação.

Sintaxe

array.sort([função]);

Exemplo

Vamos ordenar um array:

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

Resultado da execução do código:

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

Exemplo

Vamos ordenar um array com números:

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

Resultado da execução do código:

[1, 2, 4, 7]

Exemplo

Vamos adicionar números ao array e ordená-lo:

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

Como resultado da execução do código veremos que os números não estão dispostos em ordem crescente, mas em ordem lexicográfica, ou seja, os números são comparados entre si como strings. Nesse caso, a comparação é feita por cada caractere, verificando se o código do primeiro caractere é maior que o do vizinho, e assim por diante. Resultado:

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

Exemplo

Agora vamos ordenar o array usando uma função, na qual definiremos a condição - se o primeiro parâmetro for maior que o segundo, então os trocamos (para isso, em return, qualquer número positivo). Caso contrário, a troca não é necessária e indicamos 0 ou qualquer 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 da execução do código:

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

Exemplo

Vamos, por conveniência, encurtar o código da nossa função do exemplo anterior:

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

Resultado da execução do código:

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

Exemplo

E agora, usando uma função, vamos ordenar o array em ordem decrescente:

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

Resultado da execução do código:

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

Exemplo

Vamos ordenar um array de objetos pela chave 'one' em ordem crescente:

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 da execução do código:

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

Exemplo

E agora vamos ordenar o array de objetos pela chave '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 da execução do código:

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

Exemplo

Vamos verificar se o array foi alterado após a aplicação do método sort:

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

Resultado da execução do código:

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

Veja também

  • método filter,
    que permite filtrar elementos do array
Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar