确保项目在数组中并返回项目

时间:2016-03-12 20:36:21

标签: arrays ruby

我正在寻找一种快速验证项目的方法,并返回该项目。到目前为止,我有:

item = :foo
whitelist = [:foo, :bar]
(whitelist & [item]).first # => :foo

或一行:

([var] & [:foo, :bar]).first

有更多的红宝石方式吗?

4 个答案:

答案 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