Posted at

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