Ruby Academy · Aula

map, select, reject

Transforme e filtre.

Aula 3 de 413 etapas

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.inspect

map 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 }.inspect

O atalho de símbolo

Quando o bloco apenas chama um método, use &:method como atalho.

words = ["a", "b", "c"]
puts words.map(&:upcase).inspect

map 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.inspect

Filtrando 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.inspect

Filtrando 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 }.inspect

Removendo 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? }.inspect

Encadeando 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.inspect

Filtragem 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.inspect

Mapeamento 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 }.inspect

Particionamento

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.inspect

Verificação rápida

Verifique seus conhecimentos sobre transformação e filtragem.

Recapitulação

Você dominou a transformação e a filtragem:

  • map para transformar, com o atalho &:method
  • select/filter e reject
  • 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 }.inspect
Grátis para começar

Aprenda 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

  1. Criando intervalos
  2. O módulo Enumerable
  3. map, select, reject
  4. reduce e each_with_object
← Voltar para Ruby Academy