2011-05-16 35 views
2

存在價值目前,我有這樣的:搜索如果在Ruby陣列

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

如何搜索這個數組,看看「40」的存在?

+0

你試過了什麼? – 2011-05-16 15:57:16

+3

以什麼方式存在?從技術上講,「40」不是你陣列的成員。 – 2011-05-16 15:57:38

+0

cart [0] .first [0] ==「40」現在將其構建到cart.each塊中。我想他是指字符串鍵「40」。 – 2011-05-16 15:58:46

回答

7

如果你想找到,如果「40」是在您的任何陣列項目的關鍵,你可以這樣做:

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

你也可以做

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

或更乾淨

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