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