LoginSignup
1
1

More than 3 years have passed since last update.

【Ruby】複数の条件下で、配列から特定の値を取り出す方法【select・each】

Posted at

できるようになること

複数の条件を用いて、配列から特定の値を見つけることができます。

例)1~10までの数字のうち、5以下かつ2で割れるものを導き出しなさい。
みたいな問題が解けるようになります。

方法

Array#eachとArray#selectを使います。

numbers = (1..10).to_a
rule = [["<", 5],["%", 2]]

rule.each do |b|
    numbers.select! do |a|
        if b[0] == "<" 
            a <= b[1]
        else
            a % b[1] == 0
        end
    end
end

p numbers # [2,4]

つまりどう言うことか

条件(今回はrule)をeachで回して、その中に判別したいもの(今回はnumber)を入れる必要があります。かつて、逆にして困っており、最近この方法に気づいたのでまとめさせていただきました。

何か同じ悩みで引っかかっていた人の解決になれば嬉しいです。

1
1
1

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