我有保持与其中的值的一系列阵列的散列:如何检查数组中的某个值在散列中?
av_hash = {9 => [2,4,6], 10 => [5,7], 11 => [2,3,7]}
我怎样才能检查一定数目的在一定的散列密钥的阵列值的存在?
因此,如果我想要例如找出键11是否包含数组2中的数字2,那么最好的方法是什么?
我有保持与其中的值的一系列阵列的散列:如何检查数组中的某个值在散列中?
av_hash = {9 => [2,4,6], 10 => [5,7], 11 => [2,3,7]}
我怎样才能检查一定数目的在一定的散列密钥的阵列值的存在?
因此,如果我想要例如找出键11是否包含数组2中的数字2,那么最好的方法是什么?
这是非常直接的。使用hash[key_name]
获得给定密钥的项目,然后使用Enumerable#include?
检查数组是否包含要查找的元素。
谢谢,如果包括我无法解决?可以与哈希中的数组一起使用。我会接受,当我可以 –
我做了,谢谢@CarySwoveland。 –
这应该是'Array#include?' – Stefan
您可以测试你想要的特定键或遍历每个键/值对,并返回包含你正在寻找号码的键:
av_hash = {9 => [2,4,6], 10 => [5,7], 11 => [2,3,7]}
search_for = 2
# see if specific key has `search_for` value in it:
av_hash[11].includes? search_for
# returns true if key 11's array includes 2
# get keys that contain the value:
av_hash.map { |k, v| k if v.include? search_for }.compact
# returns [9, 11]
获取数组中的关键和检查?我不确定这个问题实际上是什么。 –