Enumerable#max_by
and Enumerable#min_by
return one当接收器中有多个最大/最小元素时,相关元素(大概是第一个)的。例如,以下内容:
[1, 2, 3, 5].max_by{|e| e % 3}
仅返回2
(或仅5
).
相反,我想返回all最大/最小元素和数组中的元素。在上面的例子中,它将是[2, 5]
(or [5, 2]
)。获得这个的最好方法是什么?
arr = [1, 2, 3, 5]
arr.group_by{|a| a % 3} # => {1=>[1], 2=>[2, 5], 0=>[3]}
arr.group_by{|a| a % 3}.max.last # => [2, 5]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)