搜索Ruby数组中是否存在值

时间:2011-05-16 15:52:32

标签: ruby arrays

我目前有这个:

cart = [{"40"=>[{"size"=>"1", "count"=>1, "variation"=>nil, "style"=>"3"}]}, {"40"=>[{"size"=>"2", "count"=>1, "variation"=>nil, "style"=>"3"}]}]

如何搜索此数组并查明“40”是否存在?

3 个答案:

答案 0 :(得分:9)

使用Enumerable#any

item_in_cart = cart.any? { |item| item.has_key?("40") } 
#=> true / false

答案 1 :(得分:7)

如果您想查找“40”是否是任何数组项中的键,您可以执行以下操作:

cart.detect{|i| i.has_key?("40")}

答案 2 :(得分:2)

您也可以

cart.each do |c|
  if c.first[0] == "40"
    match = true
  end
end

或更清洁

match = cart.any? {|c| c.first[0] == "40" }