Filter & Sort Lists Filtrando e ordenando listas

Última atualização: 2026-11-03

Filter & Sort Lists Filtrando e ordenando listas

Filtrar e ordenar uma lista não altera o array original; em vez disso, você deriva um novo com filter, sort e métodos afins e renderiza esse. Manter os dados de origem intactos e calcular a visualização no momento do render é a ideia central da abordagem do React para listas. Isso também evita o bug clássico de ordenar um array de estado e corrompê-lo silenciosamente.

GrupoRenderização e Estado
TipoPadrão
DesdePrimeiras versões do React

ℹ️ Informação O editor transpila JSX para JavaScript e renderiza a UI real na sandbox; os componentes são montados automaticamente — sem render manual.

📝 Sintaxe

const shown = products
  .filter((p) => p.price < 100)        // Filter → um novo array
  .sort((a, b) => a.price - b.price)   // Sort (na cópia produzida pelo filter)
{shown.map((p) => <li key={p.id}>{p.name}</li>)}

Retorna:Sem valor de retorno — uma convenção de código e um modelo mental.

▶ Exemplo

O exemplo roda direto: renderiza automaticamente ao expandir e edições valem na hora.

Saída:

Uma lista de produtos com dois controles: marcar "Under 100 only" deixa apenas o mouse, e clicar no botão de preço alterna entre ordem decrescente e crescente enquanto a lista se reordena ao vivo — o array original nunca é modificado.

💡 Pontos-chave

💡 Dica Filtre antes de ordenar: filter devolve um novo array, então ordenar essa cópia no lugar nunca toca no array de estado.
⚠️ Aviso sort altera o array! Copie-o com [...arr] — ou filtre antes — antes de ordenar um array de estado diretamente.
ℹ️ Informação As condições de filtro e a direção da ordenação normalmente ficam no estado, enquanto o resultado exibido é calculado durante o render, então não há necessidade de guardar um "estado derivado" separado.
Mais casos em breve.

📚 Tutoriais Relacionados

❓ Perguntas Frequentes

P Como filtro e ordeno uma lista no React?
R Filtre e ordene os dados antes de renderizar para obter um novo array e depois mapeie-o para JSX. Mantenha as condições de filtro no estado e calcule o resultado durante o render.
P O sort modifica o array original?
R Sim, o sort ordena no lugar. Você precisa copiar o array de estado do React antes de ordená-lo ([...arr].sort, ou filtre antes), senão o array de estado é corrompido.
P O resultado filtrado deve ser guardado no estado?
R Não. O resultado filtrado é derivado dos dados originais mais as condições, então calcule-o durante o render; guardar uma segunda cópia facilmente deixa duas versões fora de sincronia.
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%