0
請幫我弄清楚min_by行爲。Ruby min_by邏輯
我有一個「諾馬」表有兩列(raw_value,百分點)。 經過一些計算後,我得到calculate_result,我的目標是找到最接近我的calculate_result的raw_value的百分位數。 下面我的做法:
raw = Norma.where(name: name).map(&:raw_value).min_by { |x| (x.to_f - value.to_f).abs }
它的工作原理,但我不能想出所有的邏輯,這裏就是我的意思:
arr = [1,2,3,4,5]
arr.min_by {|x| (x - 3.5).abs}
=> 3
在這種情況下
,我們有兩個相同的差異(0.5〜3以及4), 所以我的問題是什麼是規則選擇結果,如果多個最小的發現。
祝您生產愉快! :)
這是我最好的猜測,謝謝! –
編輯添加一些背景 – SteveTurczyn
帶有#索引的代碼片段沒有說明與#min的一致性。它用'#index'說明了一致性'#min_by'。即使'#min'返回最後,它仍然返回相同。 – mudasobwa