我有一个哈希,它包含一系列包含值的数组:
av_hash = {9 => [2,4,6], 10 => [5,7], 11 => [2,3,7]}
如何检查某个哈希键的数组值中是否存在某个数字?
因此,如果我想要找出键11是否包含数组中的数字2,那么最好的方法是什么?
答案 0 :(得分:2)
这非常直截了当。使用hash[key_name]
获取具有给定键的项目,然后使用Enumerable#include?
检查数组是否包含您要查找的元素。
答案 1 :(得分:2)
您可以测试您想要的特定密钥,也可以遍历每个密钥/值对并返回包含您要查找的号码的密钥:
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]