我想知道是否有一种方法可以在哈希表中搜索包含值的键和值。
目前我正在这样做:
#for this example say
bot,input = "rock","scissors"
hash = Hash['rock', 'scissors', 'scissors', 'paper', 'paper', 'rock']
outcome = ([hash.rassoc(bot), hash.assoc(bot)] & [hash.rassoc(input),hash.assoc(input)]).flatten
这里的Outcome找到所有包含bot和input的hash元素;然后检查他们有哪些共同点。 只是想知道我是否有一种方法可以返回我想要的东西:
outcome = [hash.rassoc(bot), hash.assoc(bot)]
最佳答案
这是您要找的吗?
winners = { "rock"=>"scissors", "scissors"=>"paper", "paper"=>"rock" }
def outcome(winners, player, opponent)
return :win if winners.any? { |pair| pair == [player, opponent] }
return :lose if winners.any? { |pair| pair == [opponent, player] }
return :tie
end
outcome winners, "rock", "scissors" #=> :win
outcome winners, "scissors", "rock" #=> :lose
outcome winners, "rock", "rock" #=> :tie
关于ruby - 如果 'key' 或 'value' 包含 ruby 中的值,则选择哈希元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41309553/