map, select, reject
Transforme e filtre.
map, select, reject é uma aula grátis de Ruby Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Ruby Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Ruby Academy inclui 4 aulas no total.
Transformando com map
map cria um vetor novo executando o bloco em cada elemento. O original não é alterado.
nums = [1, 2, 3]
doubled = nums.map { |n| n * 2 }
puts doubled.inspect
puts nums.inspectmap para cadeias de caracteres
map pode transformar qualquer tipo de valor, como ao converter palavras para maiúsculas.
words = ["red", "green"]
puts words.map { |w| w.upcase }.inspectO atalho de símbolo
Quando o bloco apenas chama um método, use &:method como atalho.
words = ["a", "b", "c"]
puts words.map(&:upcase).inspectmap com índice
Encadeie with_index quando também precisar das posições.
letters = %w[a b c]
result = letters.map.with_index { |l, i| "#{i}:#{l}" }
puts result.inspectFiltrando com select
select (alias filter) mantém apenas os elementos para os quais o bloco é verdadeiro.
nums = [1, 2, 3, 4, 5, 6]
evens = nums.select { |n| n.even? }
puts evens.inspectFiltrando cadeias de caracteres
select funciona com qualquer condição, como ao manter palavras longas.
words = ["hi", "hello", "hey", "welcome"]
puts words.select { |w| w.length > 3 }.inspectRemovendo com rejeição
reject é o inverso de select. Ele remove os elementos para os quais o bloco é verdadeiro.
nums = [1, 2, 3, 4]
puts nums.reject { |n| n.even? }.inspectEncadeando map e select
Como cada operação retorna um vetor novo, você pode encadear métodos em uma cadeia de processamento.
nums = [1, 2, 3, 4, 5]
result = nums.select { |n| n.odd? }.map { |n| n * 10 }
puts result.inspectFiltragem e mapeamento
filter_map combina filtragem e mapeamento em uma única passagem: mantém os resultados do bloco que não são falsos.
nums = [1, 2, 3, 4]
result = nums.filter_map { |n| n * 2 if n.even? }
puts result.inspectMapeamento e nivelamento
flat_map mapeia e depois nivela um nível de vetores aninhados.
pairs = [[1, 2], [3, 4]]
puts pairs.flat_map { |p| p }.inspectParticionamento
partition divide uma coleção em dois vetores: correspondências e não correspondências.
nums = [1, 2, 3, 4, 5]
evens, odds = nums.partition { |n| n.even? }
puts evens.inspect
puts odds.inspectVerificação rápida
Verifique seus conhecimentos sobre transformação e filtragem.
Recapitulação
Você dominou a transformação e a filtragem:
mappara transformar, com o atalho&:methodselect/filterereject- encadeamento,
filter_map,flat_map,partition
A seguir: reduce e each_with_object para agregação.
puts [1, 2, 3, 4].select(&:even?).map { |n| n * n }.inspectAprenda Ruby com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 29
- Aulas
- 109
Perguntas Frequentes
A aula “map, select, reject” é grátis?
Sim — o texto completo de “map, select, reject” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Ruby Academy, atualize para CoddyKit PRO. O curso de Ruby Academy inclui 4 aulas no total.
O que vou aprender em “map, select, reject”?
Transforme e filtre. Você pratica Ruby Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Ruby Academy?
Nenhuma experiência prévia é necessária. Ruby Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “map, select, reject”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Ruby Academy?
Sim. Cada aula de Ruby Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Criando intervalos
- O módulo Enumerable
- map, select, reject
- reduce e each_with_object