【发布时间】:2021-03-26 20:13:45
【问题描述】:
Ruby max_by 方法从数组中找到最大元素。有时最大元素具有多重性,在这种情况下 max_by 只选择其中一个,看似随意。当我需要所有这些时,我目前使用这种方法,在数组数组中找到最大值:
sorted=ary.sort_by{|a,b| b}.reverse
max_score=sorted.first[1]
t=sorted.take_while{|z| z[1]==max_score}
但是我怎么能用“maxes_by”方法对 Array 类进行猴子修补,该方法接受一个块,类似于 max_by,并返回一个最大值数组?
【问题讨论】:
-
没有内置的,所以你必须自己编写。如果需要,您可以将其引入为
Array#maxes_by,甚至可以将其放入Enumerable。 -
你的输入数组是什么样子的?
-
我想要一个适用于各种数组、嵌套数组等的实现。这就是为什么应该传递一个块。无论如何,我的数组包含值对,作为嵌套数组,这也可以从我的示例中看出。
标签: arrays ruby sorting monkeypatching maxima