我需要使用相同的密钥将更多值保存到Ruby中的哈希值中。但我仍然希望能够通过.value?
找到它们。
如果我将数组保存为哈希值,我找不到单个值。
例如,如果我有数组['something', 'something2']
,我必须将其保存到hash
中的索引1。然后hash.value?(['something'])
返回false。我需要它才能返回真实。我怎么能这样做?
答案 0 :(得分:0)
可能的方法之一:
hash.values.flatten.include?('something')
答案 1 :(得分:0)
要添加@nsave所说的内容,您可以这样做:
hash.values.flatten.include?('something')
或按键查找。这可能更直截了当,你在寻找什么。你没有说出你使用的是什么密钥,但是说你正在使用:things
:
hash[:things] = ['something', 'something2']
#=> ["something", "something2"]
hash[:things].include? 'something'
#=> true
答案 2 :(得分:-1)
您是否正在检查散列是否在其值中的某处包含字符串'something'
或者您是否正在检查散列是否包含包含一个字符串元素的数组的值'某些内容',即['something']
?如果是第一个,请使用hash.values.flatten.include?("something")
之类的内容。否则,hash.value?(['something'])
正确返回false
,因为哈希的值不是["something"]