ruby のハッシュ テーブルから最初のキーと値のキーを取得しようとしています。メソッドに渡されるため、ハッシュのキー値はわかりません。最初のキー/値を別のハッシュテーブルとして見つける方法をオンラインで見つけることができません。コードを実行するとhash[0]
返される名前が 0 の要素を見つけようとするだけだと思います。nil
キーの名前と値を見つけて、それらから新しいハッシュを作成できることはわかっていますが、これを行う簡単な方法があるのではないかと思うので、すぐにハッシュを取得します。
ここに私のコードがあります:
def rps_game_winner(game)
rock_in_hash = game.invert['R']
paper_in_hash = game.invert['P']
scissors_in_hash = game.invert['S']
if(rock_in_hash)
if(paper_in_hash)
return paper_in_hash;
elsif(scissors_in_hash)
return rock_in_hash
end
elsif(paper_in_hash)
if(rock_in_hash)
return paper_in_hash
elsif(scissors_in_hash)
return scissors_in_hash
end
end
key = game.keys[-1]
value = game.values[-1]
winner = {key => value}
return winner
end
game_one = { "Bob" => 'P', "Jim" => 'P' }
puts rps_game_winner(game_one)
これにより、正しい結果が得られます。問題は、ゼロではなく-1である理由がわからないことです...そして、新しいハッシュを作成する代わりに、ハッシュテーブルの最初のキーと値のペアを取得するより良い方法があることを望んでいました前のテーブルから取得したキーと値を持つテーブル。