Ruby · Essencial · Inglês · Técnico
select
Método que devolve um novo array só com os elementos para os quais o bloco retorna valor verdadeiro. Em hashes, devolve um hash filtrado.
Onde usar
Aparece em filtros de coleções em memória, como pegar só os pedidos pagos. No ActiveRecord, select com argumentos tem outro papel: escolhe colunas do SQL.
Em código
pares = (1..6).select { |n| n.even? }
p pares # => [2, 4, 6]
h = { a: 1, b: 5 }
p h.select { |_k, v| v > 2 }.keys
# => [:b]Exemplos
Select only the orders that were paid.
Selecione só os pedidos que foram pagos.
Select with a block filters in memory, not in the database.
Select com bloco filtra em memória, não no banco.
Cuidado
Não o confunda com reject, que faz o contrário, nem com find, que devolve só o primeiro elemento que casar.
Sinônimos
filter
Antônimos
reject