ruby数组哈希按键获取键值和按键获取值

时间:2016-03-08 09:26:20

标签: arrays ruby reverse

我有哈希{ "1" => "one", "2" => "two", "3" => "three" }

如何按键获取值和值。

如果我通过“1”我得到“一个”,如果我通过“两个”我得到“2”

def finder (string)
  table = { "1" => "one", "2"   =>  "two", "3"  =>  "three" }
  *magick*
  }
  return string
end
puts finder("1") => one
puts finder("one") => 1

2 个答案:

答案 0 :(得分:10)

Hash#key返回给定值的键:

@hash = {"1"=>"one", "2"=>"two", "3"=>"three"}
@hash.key("one") #=> "1"

nil如果不存在此类值:

@hash.key("four") #=> nil

要获取键的值或值的键,可以使用:

def finder(str)
  @hash[str] || @hash.key(str)
end

finder("1")   #=> "one"
finder("one") #=> "1"

答案 1 :(得分:2)

如果您的哈希很大并且您将反复执行此操作,则可以为快速查找创建新哈希:

('2016-03-31', '2016-03-05')