Ruby

Rubyのselect,map,eachのサンプルメモ

メモ

test.rb
require "pp"

arrs = [1,2,3,4,5]

# select
# ブロック引数itemに要素を入れながらブロックを繰り返し、ブロックの戻り値が真になったときの要素を集め、新しい配列にして返します
result_select = arrs.select do |item|
  true
end
pp result_select

result_select = arrs.select do |item|
  false
end

pp result_select

result_select = arrs.select do |item|
  item == 3
end

pp result_select

# each
# 配列の要素の数だけブロックを繰り返し実行します。繰り返しごとにブロック引数には各要素が順に入ります。戻り値はレシーバ自身

result_select = arrs.each do |item|
  true
end
pp result_select

result_select = arrs.each do |item|
  false
end
pp result_select

result_select = arrs.each do |item|
  pp item
  item == 3
end
pp result_select

# map
# mapメソッドは、要素の数だけ繰り返しブロックを実行し、ブロックの戻り値を集めた配列を作成して返します

result_select = arrs.map do |item|
  true
end
pp result_select

result_select = arrs.map do |item|
  false
end
pp result_select

result_select = arrs.map do |item|
  item+1
end
pp result_select
実行結果
[1, 2, 3, 4, 5]
[]
[3]
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5]
1
2
3
4
5
[1, 2, 3, 4, 5]
[true, true, true, true, true]
[false, false, false, false, false]
[2, 3, 4, 5, 6]

参考

map, map! (Array) - Rubyリファレンス https://ref.xaio.jp/ruby/classes/array/map

select (Array) - Rubyリファレンス https://ref.xaio.jp/ruby/classes/array/select

each (Array) - Rubyリファレンス https://ref.xaio.jp/ruby/classes/array/each