よりルービッシュな方法で最大2Dアレイを取得しますか?

StackOverflow https://stackoverflow.com/questions/3593659

  •  01-10-2019
  •  | 
  •  

質問

バックグラウンド: Rubyには、次のような2D配列があります。

count[[english_word, french_word]] = ...
pp count
{["my", "une"]=>0.0,
 ["my", "voiture"]=>0.2,
 ["red", "maison"]=>0.9,
...
}

(私がこれをしたのではなく、私がこれをした理由 count[english_word][french_word] UNDEFエラーを回避する方法がわかりませんでした、そして、この構文がスタックオーバーフローで提案されているのを見ました)

データ構造に、 english_vocabfrench_vocab すべての単語の配列。

質問: 特定の英語の単語の最大値を取得できるようにしたいと思います。

english_word = 'foo'
max_count = 0
french_vocab.each do |french_word|
   count = count[[english_word, french_word]]
   if count > max_count
       max_count = count
   end
end

ループ用のシンプルなネストでこれを行うことができますが、同じことをするためのより良いルビー風の方法があるかどうか疑問に思っていますか?

役に立ちましたか?

解決

あなたが思っているよりもずっと簡単だと思います。

hash = {
  ["my", "une"]=>0.0,
  ["my", "voiture"]=>0.2,
  ["red", "maison"]=>0.9,
}

puts hash.find_all{|a| a[0][0] == 'my' }.max[1]
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top