我正在寻找一种快速验证项目的方法,并返回该项目。到目前为止,我有:
item = :foo
whitelist = [:foo, :bar]
(whitelist & [item]).first # => :foo
或一行:
([var] & [:foo, :bar]).first
有更多的红宝石方式吗?
答案 0 :(得分:0)
假设您要检查多个项目:
candidates.find { |item| whitelist.include? item }
假设它只有一个项目:
item if whitelist.include? item
答案 1 :(得分:0)
whitelist.include?(item) && item
答案 2 :(得分:0)
也许是这样的:
var = :foo
whitelist = [:foo, :bar]
whitelist.include?(var) ? var : nil
答案 3 :(得分:0)
whitelist.find{|e| e == item} # => :foo
或
whitelist.grep(item).first # => :foo