【Ruby】条件に一致する要素のみ抜き出し新たな配列を作る。filterとselect
個人メモです。
条件に一致する要素のみ抜き出し新たな配列を作るメソッドに、select
とfilter
がある。
これはどちらも同じ。rubyの公式ページを見ると、filterメソッドの実例にはselectが使われている。
rangeオブジェクト
1~3までのrangeオブジェクトに対して、2以下に該当する数値のみを抜き出し配列を作成する。
select
range = 1..3 #[1,2,3]
range2 = range.select{|x| x<=2}
p range2
#出力
[1, 2]
filter
range = 1..3 #[1,2,3]
range2 = range.filter{|x| x<=2}
p range2
#出力
[1, 2]
filterもselectも結果は同じ。
配列
select
arr = [1,2,3]
arr2 = arr.select{|x| x<=2}
p arr2
#出力
[1, 2]
オブジェクト
オブジェクトの場合、変数を2つ設定する。
1つ目の変数がキー、2つ目の変数が値となる。
※変数が1つのみの場合はKVのpairが入る。
obj = {:a=>1, :b=>2, :c=>3}
obj2 = obj.select{|x, y| y<=2}
p obj2
#出力
{:a=>1, :b=>2}
mapメソッドと異なり、処理結果はオブジェクトで返る。(mapの場合は配列が返る)
Author And Source
この問題について(【Ruby】条件に一致する要素のみ抜き出し新たな配列を作る。filterとselect), 我々は、より多くの情報をここで見つけました https://qiita.com/shizen-shin/items/6894ba7ae73b54545f39著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .