Como ordenar um Array de Objetos com Array.sort()
Este post mostra um exemplo prático de como ordenar um array de objetos em javasctipt usando Array.sort()
Última atualização em: | 14432 Visualizações
O método sort()
O método sort
aceita uma função com dois parâmetros de forma opcional. Cada parâmetro é um objeto a ser comparado pelo algoritmo de ordenação. Essa função deve retornar um número negativo (se o primeiro objeto é menor que o segundo), um número positivo (se o segundo é menor que o primeiro) e zero se ambos são iguais.
Ordenando uma lista de nomes usando sort()
Para ordenar uma lista de nomes em javascript usando o método sort
é relativamente simples, veja:
var names = ["Wolmir", "Cesar", "Willian", "João"];
names.sort();
Se executar o código no console do seu navegador, terá o seguinte resultado:
["Cesar", "João", "Willian", "Wolmir"]
Note que não precisamos passar nenhuma função para o método
sort
.
Ordenando uma lista de objetos usando sort()
Imagine uma lista de cidades e você quer comparar pelo nome da cidade (String
), um meio é comparar esses atributos e retornar o valor corespondente:
Veja o exemplo:
var cities = [
{name: 'Pato Branco', state: 'PR'},
{name: 'Blumenau', state: 'SC'},
{name: 'Florianopolis', state: 'SC'}
];
cities.sort(function(a,b) {
return a.name < b.name ? -1 : a.name > b.name ? 1 : 0;
});
Ao executar o código teremos o seguinte retorno:
[
{"name":"Blumenau","state":"SC"},
{"name":"Florianopolis","state":"SC"},
{"name":"Pato Branco","state":"PR"}
]
Note que todo o Array
cities
foi ordenado.
Não esqueca de deixar suas dúvidas nos comentários e compartilhar este post.