LoginSignup
1
1

More than 3 years have passed since last update.

【Ruby】条件に一致する要素のみ抜き出し新たな配列を作る。filterとselect

Posted at

個人メモです。

条件に一致する要素のみ抜き出し新たな配列を作るメソッドに、selectfilterがある。

これはどちらも同じ。rubyの公式ページを見ると、filterメソッドの実例にはselectが使われている。

image.png

ruby公式 Array#filter


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の場合は配列が返る)

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1