持っている場合:は、ハッシュ値が、私はハッシュを持っているテキスト
universityname = e.university
topuniversities = CSV.read('lib/assets/topuniversities.csv',{encoding: "UTF-8", headers:true, header_converters: :symbol, converters: :all})
hashed_topuniversities = topuniversities.map {|d| d.to_hash}
hashed_topuniversities.any? {|rank, name| name.split(' ').include?(universityname) }.each do |s|
if s[:universityrank] <= 10
new_score += 10
elsif s[:universityrank] >= 11 && s[:universityrank] <= 25
new_score += 5
elsif s[:universityrank] >= 26 && s[:universityrank] <= 50
new_score += 3
elsif s[:universityrank] >= 51 && s[:universityrank] <= 100
new_score += 2
end
を基本的にこれが何をしているか、ハッシュを見ていると、ハッシュ値は、大学名が入力されて含まれているかどうかをチェックします。
たとえば、ユーザー入力は「Oxford University」で、ハッシュでは「Oxford」として格納されます。ユーザーはスコアを割り当てることができるようにハッシュに格納されているように入力する必要がありますが、ユーザーが "oxford university"を入力すると、ハッシュ値 "Oxford"を選択して通過する必要があります。
他のすべては正常に動作しますが、.include?
は正しく動作しませんが、正確な単語を入力する必要があります。より慣用ルビという点でいくつかのコードの改善に加え
[正規表現](http://www.tutorialspoint.com/ruby/ruby_regular_expressions.htm) –
'可算#いずれかをチェックしてください?'ブール値を返します。 'hashed_topuniversities.any? {...} .each'は動作しません。 –
が合意されました。あなたはリンクの部分に一致する正規表現をしたいでしょう。オプションで、ファジーマッチングを使って最良のものと一致するキーを見つけることができますが、それは過剰なもののようです:P – jaydel