Fala galera to com uma duvida de como usar o sort para colocar os times em ordem alfabetica, alguem consegue me ajudar com essa?
Fala galera to com uma duvida de como usar o sort para colocar os times em ordem alfabetica, alguem consegue me ajudar com essa?
Olá, Pamella!
Conseguir implementar a sua ideia no meu projeto ficou bem legal em resumo, com o seguinte código no app.js, uma observação é que eu utilizo a versão da quinta aula, então talvez tenha uma coisa ou outra a mais do que o seu, código:
const timesOrdenados = times.slice().sort((a, b) => a.nome.localeCompare(b.nome));
Vou dividir a explicação em partes:
times.slice()
: A função slice()
é usada para criar uma cópia do array times
. Isso é importante porque o método sort()
modifica o array original e isso pode não ser legal.
.sort((a, b) => a.nome.localeCompare(b.nome))
: Aqui, usamos o método sort()
para ordenar os elementos do array. O método sort()
recebe uma função de comparação como argumento, que determina a ordem de classificação dos elementos.
O resultado dessa operação é o array timesOrdenados
, que contém os mesmos objetos do array times
, mas ordenados em ordem alfabética com base no nome de cada time, sendo assim depois basta implementar na section do app.js, ficando assim:
<section className="times">
<h1>Minha organização</h1>
{timesOrdenados.map((time, indice) => <Time key={indice} time={time} colaboradores={colaboradores.filter(colaborador => colaborador.time === time.nome)} />)}
</section>
Dessa forma, ao renderizar os times no componente App
, eles serão exibidos em ordem alfabética pelo nome, observe meu resultado que bacana:
Espero ter ajudado, reforço que em casos de dúvidas, conte sempre com o fórum da comunidade Alura! Bons estudos!
Sucesso ✨
Um grande abraço e até mais!