0
min_byの動作を理解するのを手伝ってください。Ruby min_by logic
私は2つのカラム(raw_value、percentile)を持つ "normas"テーブルを持っています。 いくつかの計算の後、私はcalculate_resultを取得し、私の目標は、最も近いraw_valueのpercentileをcalculate_resultに見つけることです。 以下のように私のアプローチは:
この場合arr = [1,2,3,4,5]
arr.min_by {|x| (x - 3.5).abs}
=> 3
我々は二つの同一の差異(0.5〜3を持っている:
raw = Norma.where(name: name).map(&:raw_value).min_by { |x| (x.to_f - value.to_f).abs }
それは動作しますが、私はすべてのロジックを把握することはできません、ここで私が何を意味するかですと同様に4)、 私の質問は、結果を選択するためのルールは、複数の最小が見つかった場合です。
生産的な日ですか? :)
は、ありがとうございました! –
背景を編集するために編集しました – SteveTurczyn
'#index'のスニペットは' #min'との整合性を示していません。それは、##indexとの整合性 '#min_by'を示しています。 '#min'が最後を返したとしても、それはまだ戻っていました。 – mudasobwa