内选择一个哈希我有以下阵列:红宝石:从阵列
response = [{"label"=>"cat", "name"=>"kitty", "id"=>189955}, {"label" => "dog", "name"=>"rex", "id" => 550081}]
如何选择包含标签猫的哈希?我知道response.first
会给我同样的结果,但我想通过标签搜索。
谢谢!
德布
内选择一个哈希我有以下阵列:红宝石:从阵列
response = [{"label"=>"cat", "name"=>"kitty", "id"=>189955}, {"label" => "dog", "name"=>"rex", "id" => 550081}]
如何选择包含标签猫的哈希?我知道response.first
会给我同样的结果,但我想通过标签搜索。
谢谢!
德布
response.find {|x| x['label'] == 'cat' } #=> {"label"=>"cat", "name"=>"kitty", "id"=>189955}
尝试:
response.select { |x| x["label"] == "cat" }
也可以选择,但是它会返回一个数组,所以我在这个特殊情况下使用“find”。谢谢! :) – deb 2010-08-05 21:01:14
是的,'Array#find'返回第一个匹配或nil,而'Array#select'和'Array#find_all'返回所有匹配元素的数组。 – Zargony 2010-08-05 21:27:20
另外值得注意的是'Array#find'的同义词是'Array#detect'。 – PreciousBodilyFluids 2010-08-06 03:28:06
越来越多,我发现,Ruby是真的很真棒(原因是多方面的,其中最重要的是这些小便利方法)。 – 2013-11-20 04:53:36