メモ
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