Voltar para o Blog

Ordenando Array de Objects usando sort() 📊

Se você já precisou ordenar um Array de Objects, com certeza já ouviu falar do método sort(). Mas você sabia que é possível personalizar a ordenação de acordo com as suas necessidades?

O método sort() aceita como parâmetro opcional uma função de comparação, que define o critério de ordenação dos elementos do Array. Essa função recebe dois parâmetros, que representam dois elementos do Array a serem comparados, e deve retornar um número negativo se o primeiro elemento é menor que o segundo, um número positivo se o segundo é menor que o primeiro, e zero se ambos são iguais.

Anúncio

Por exemplo, imagine que você tem um Array de Objects que representa uma lista de alunos, e cada Object tem duas propriedades: "nome" e "nota". Para ordenar essa lista por ordem alfabética de nome, você pode usar o método sort() com a seguinte função de comparação:

listaAlunos.sort((alunoA, alunoB) => {  if (alunoA.nome < alunoB.nome) {    return -1;  } else if (alunoA.nome > alunoB.nome) {    return 1;  } else {    return 0;  }});

Nesse exemplo, a função de comparação verifica se o nome do alunoA é menor que o nome do alunoB. Se for, retorna -1. Se for maior, retorna 1. Se forem iguais, retorna 0. Com essa função, o método sort() ordena a lista de alunos por ordem alfabética de nome.

Mas e se você quisesse ordenar a lista por ordem decrescente de nota? Basta mudar a função de comparação:

listaAlunos.sort((alunoA, alunoB) => alunoB.nota - alunoA.nota);

Nesse caso, a função de comparação subtrai a nota do alunoB pela nota do alunoA, o que resulta em um número positivo se a nota do alunoB for maior que a do alunoA, e um número negativo se for menor. Com essa função, o método sort() ordena a lista de alunos por ordem decrescente de nota.

Vale lembrar que o método sort() modifica o Array original, e não cria uma cópia ordenada. Se você quiser manter o Array original intacto, é necessário criar uma cópia antes de ordená-lo.

E aí, gostou de aprender mais sobre o método sort()? Já usou ele para ordenar Arrays de Objects? Se tiver alguma dúvida, é só perguntar lá na minha caixinha de perguntas do instagram, que estou lá para ajudar.

Anúncio

Bora pra cima! 🦅

Post anterior Próximo post

Comentários (0)

Esse artigo ainda não possui comentários 😢. Seja o primeiro! 🚀🦅

Adicionar comentário