我有一个哈希。其中,每个键的值都是一个数组。我想测试一个值是否在数组之一中,如果是,它对应于哪个键。例如,假设我正在编写一个带有命令列表的命令行程序,每个命令都有一些昵称,如下所示:
commands = {
:exit => ['exit', 'ex'],
:start_car => ['start_engine', 'start'],
:accelerate => ['speed_up', 'accelerate'],
:help => ['help', '?']
}
因此,如果我想启动汽车,我可以输入 start_engine
或 start
两者都可以。
假设我需要一个函数来测试给定的字符串是否是命令的名称。如果不是,则返回 false
。如果是这样,返回命令的名称,如下所示:
def is_command? string
if # string is a nickname
# return the key to which it belongs, i.e. 'ex' to :exit
else
return false
end
end
我尝试浏览哈希和数组的函数列表,但我找不到任何东西,我什至无法开始考虑如何通过谷歌搜索这样的东西。非常欢迎任何帮助。
最佳答案
使用查找
:
commands = {:exit => ['exit', 'ex'], :start_car => ['start_engine', 'start'], :accelerate => ['speed_up', 'accelerate'], :help => ['help', '?']}
commands.find { |key,value| value.include?( '?' ) }
> [:help, ["help", "?"]]
关于ruby - 在每个值都是数组的哈希中,如何使用数组项查找键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24071715/