在散列中查找其值不是给定值的密钥

Ala*_*ano 0 ruby hash

如何在散列中找到值不等于给定值的第一个键?给出以下哈希值和值100,

h = { "a" => 100, "b" => 100, "c" => 800, "d" => 500 }
Run Code Online (Sandbox Code Playgroud)

我想找到"c" => 800.

Car*_*and 5

你可以这样做:

no_match_value = 100

h.find { |k,v| v != no_match_value }.first #=> "c"
Run Code Online (Sandbox Code Playgroud)

寻找哈希中特定位置的键或值是不常见的,但是(自Ruby v1.9起)你可以做到这一点.排序由密钥插入顺序确定.直到v1.9,没有排序散列键的概念,就像没有排序集合的元素一样.一些Rubiests认为关键的排序是异端邪说; 其他人,包括我自己,已经找到了很好的用途.