当值匹配模式时,从哈希返回键数组

时间:2015-03-17 20:21:14

标签: ruby arrays hash return key

我正在尝试运行以下哈希

my_family_pets_ages = {"Evi" => 6, "Hoobie" => 3, "George" => 12, "Bogart" => 4, "Poly" => 4, "Annabelle" => 0, "Ditto" => 3}

并返回一个键数组,其值与age的指定整数相匹配。所以,例如,如果我想找到所有3岁的宠物,它会返回一个只是他们名字的数组。

["Hoobie", "Ditto"]

我有以下方法,但我似乎无法让方法返回一个只有键的数组,但我只是得到了键=>像这样的数组中的值:

["Hoobie"=>3, "Ditto"=>3]

这是我到目前为止的方法

def my_hash_finding_method(source, thing_to_find)
  source.select {|name, age| name if age == thing_to_find}
end

任何指针?我坚持如何只返回键

1 个答案:

答案 0 :(得分:1)

只需使用#select,然后使用#keys即可获得匹配键的数组:

def my_hash_finding_method(source, thing_to_find)
  source.select { |name, age| age == thing_to_find }.keys
end

有关详细信息,请参阅Hash#keys