将更多值保存​​到一个键仍然使用hash.value?(['something'])

时间:2015-10-22 11:44:29

标签: arrays ruby hash

我需要使用相同的密钥将更多值保存​​到Ruby中的哈希值中。但我仍然希望能够通过.value?找到它们。

如果我将数组保存为哈希值,我找不到单个值。

例如,如果我有数组['something', 'something2'],我必须将其保存到hash中的索引1。然后hash.value?(['something'])返回false。我需要它才能返回真实。我怎么能这样做?

3 个答案:

答案 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"]