はじめに
Ruby学習者です。
本記事はselect
を使って配列を抽出したものです。
破壊的メソッドのselect!
についても記述します。
以下公式ドキュメントです
selectの使用例
###1.配列の場合
※ even?
はレーシバーが偶数の場合にtrue
を返すメソッドです
list = [1,2,3,4,5]
list = list.select { |num| num.even? }
p list => [2, 4]
###2.ハッシュの場合
hash = { "a" => 1, "b" => 2, "c" => 3 }
hash = hash.select {|k,v| v.even? }
p hash {"b"=>2}
select!の使用例
select
には破壊的メソッドselect!
も用意されています。
破壊的メソッドはオブジェクトそのものを変更するものなのでlist=
で代入する必要がなくなります。
###1.配列の場合
list = [1,2,3,4,5]
list.select! { |num| num.even? }
p list => [2, 4]
###2.ハッシュの場合
hash = { "a" => 1, "b" => 2, "c" => 3 }
hash.select! {|k,v| v.even? }
p hash {"b"=>2}
##応用
select
を応用した、例を記述していきます。
list = ["tokorozawa", "yamada", "oyama", "yazawa"]
list.select! { |x|
x.include?("zawa")
}
p list
=> ["tokorozawa", "yazawa"]
list = [1,2,3,4,5]
list.select! { |num| num > 3 }
p list => [4, 5]
まとめ
-
select
を使うと配列やハッシュを抽出できる - 他のメソッドと組み合わせるとさまざまなデータ処理ができる