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()

Wolmir Cezer Garbin por Wolmir Cezer Garbin - - Web - TUTORIAL

Ú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.


Publique seu post no Receitas de Código

Aguarde, estamos trabalhando para que você possa publicar sua postagem no Receitas de Código!