Enumerable Ruby: select
O curso trata do método select do Ruby. Mostra como o select mantém os elementos em que o bloco é truthy, devolve uma coleção nova de qualquer tamanho e deixa o original intocado. Compara select com map e each, apresenta o reject como oposto e explica o alias filter e o select em hashes. Trata do select! e do nil que ele pode devolver, e passa por any?, all?, none?, count e find. Um desafio final junta tudo num verificador de status de pedidos.
O que você vai aprender
- ✓Filtrar arrays com select e as regras de truthy e falsy do Ruby
- ✓Escolher entre each, map e select pelo que o código precisa de volta
- ✓Usar reject para evitar uma condição com negação
- ✓Usar filter e select em hashes, que devolvem um hash
- ✓Por que select! e reject! devolvem nil quando nada é removido
- ✓Usar any?, all?, none?, count e find
select filtra elementos
A aula 6 do curso anterior terminou numa armadilha: o map não consegue pular um elemento, mesmo quando a lógica do bloco parece pedir isso. O select foi feito para esse trabalho.
Ler a aula completa grátis →Currículo
7 aulasselect filtra elementos
O select mantém os elementos em que o bloco é truthy, devolve um array novo e pode devolver vazio.
select vs map vs each
Compara each, map e select, e mostra como filtrar com select antes de transformar com map.
reject: o oposto do select
O reject mantém os elementos em que o bloco é falsy, e escolhê-lo pode evitar um ! na condição.
filter e select em hashes
O filter é um alias do select, e select ou reject num hash devolvem um hash.
select! e sua armadilha real
O select! filtra no lugar, mas devolve nil quando nada sai, então leia a variável original.
Métodos relacionados do Enumerable
Um passeio por any?, all?, none?, count e find, que respondem perguntas sem montar um array filtrado.
Juntando tudo: um pequeno desafio
Um verificador de status de pedidos junta select, guarda para resultado vazio, count, any? e first num método.