Enumerable#max_by
并在接收器中有多个最大/最小元素时Enumerable#min_by
返回一个相关元素(大概是第一个)。例如,以下内容:
[1, 2, 3, 5].max_by{|e| e % 3}
仅返回2
(或仅返回5
)。
相反,我想返回所有max / min元素并返回一个数组。在上面的示例中,它将是[2, 5]
(或[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]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句