JavaScript Array sort()

Definição e uso

sort() O método ordena os itens do array.

A ordem de classificação pode ser alfabética ou numérica, e pode ser crescente (para cima) ou decrescente (para baixo).

Por padrão,sort() O método ordena os valores como strings, em ordem alfabética e crescente.

Isso se aplica a strings ("Apple" aparece antes de "Banana"). Mas, se os números forem ordenados como strings, "25" é maior que "100", porque "2" é maior que "1".

Por isso,sort() O método pode gerar resultados incorretos ao ordenar números.

Você pode resolver este problema fornecendo uma 'função de comparação' (veja os 'valores de parâmetro' abaixo).

Comentário:sort() O método altera o array original.

Exemplo

Exemplo 1

Ordene o array:

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort();

Experimente você mesmo

Exemplo 2

Ordene os números do array em ordem crescente:

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

Experimente você mesmo

Exemplo 3

Ordene os números do array em ordem decrescente:

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

Experimente você mesmo

Exemplo 4

Obtenha o valor mínimo do array:

var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return a-b});    // Ordene os números do array em ordem crescente
// O primeiro item do array (points[0]) agora é o valor mais baixo

Experimente você mesmo

Exemplo 5

Obtenha o valor máximo do array:

var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return b-a});    // Ordene os números do array em ordem decrescente
// O primeiro item do array (points[0]) agora é o valor mais alto

Experimente você mesmo

Exemplo 6

Obtenha o valor máximo do array:

const points = [40, 100, 1, 5, 25, 10];
// Ordene os números em ordem crescente:
points.sort(function(a, b){return a-b});
// points[points.length-1] = 100 (valor mais alto)

Experimente você mesmo

Exemplo 7

Ordene o array em ordem alfabética e inversamente a ordem dos itens ordenados (decrescente):

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort();
fruits.reverse();

Experimente você mesmo

Sintaxe

array.sort(compareFunction)

Valor do Parâmetro

Parâmetros Descrição
compareFunction

Opcional. Define uma função para ordenação alternativa. Essa função deve retornar um valor negativo, zero ou positivo, dependendo dos parâmetros, por exemplo:

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

Quando o método sort() compara dois valores, envia os valores para a função de comparação e ordena os valores com base no valor retornado (negativo, zero, positivo).

Exemplo:

Ao comparar 40 e 100, o método sort() chama a função de comparação (40, 100).

A função calcula 40-100 e retorna -60 (valor negativo).

A função sort() ordena 40 como valores menores que 100.

Detalhes Técnicos

Retorno: Objeto Array, cujos itens estão ordenados.
Versão do JavaScript: ECMAScript 1

Suporte do Navegador

Todos os navegadores suportam completamente sort() Método:

Chrome IE Edge Firefox Safari Opera
Chrome IE Edge Firefox Safari Opera
Suporte Suporte Suporte Suporte Suporte Suporte

Páginas Relacionadas

Tutorial:JavaScript Array

Tutorial:Array Const do JavaScript

Tutorial:Métodos de array do JavaScript

Tutorial:Ordenação de arrays do JavaScript

Tutorial:Iteração de arrays do JavaScript

Manual:Método reverse() do Array do JavaScript