如何检查散列中是否已存在值?

时间:2018-04-04 22:37:38

标签: ruby

是否有任何方法可以检查哈希是否包含特定值?我试过这样的事:

words = {}
puts "Which word do you want to learn to Baby?"
wordsvariable = gets.chomp
if action == "1" && words.include?(wordsvariable)
  puts "This word is already learned by the Baby, try again."
elsif action == "1" && !words.include?(wordsvariable)
words[Time.now] = wordsvariable
  puts "Congrats you have learn word: #{wordsvariable} to Baby."
end

如果这个词已经被宝宝学会了(也就是说这个词已经在哈希中),我不想让宝宝学习它。否则,我让宝宝学习它。

有人能帮助我吗?

1 个答案:

答案 0 :(得分:0)

要测试是否存在具有给定值的键,您可以在哈希上使用key方法:

words.key(wordsvariable)

如果返回值,则wordsvariable位于哈希值中。

您将这些单词存储在散列中,并将时间作为键来存储:

{
  2018-04-05 01:15:32 +0200=>"foo", 
  2018-04-05 01:15:32 +0200=>"bar"
}

存储单词和时间的更自然的方式可能是使键和值与现在的方式相反。

您可以使用words[Time.now] = wordsvariable

,而不是使用:words[wordsvariable] = Time.now

然后使用:

words[wordsvariable]

测试那里是否有值。