Kon*_*tin 2 ruby arrays sorting monkeypatching maxima
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}
Run Code Online (Sandbox Code Playgroud)
但是我如何使用“maxes_by”方法对 Array 类进行猴子修补,该方法接受一个块,类似于 max_by,并返回最大值的数组?
无需编写返回预期输出的新的优化方法,您可以组合max_by和select:
maximum = array.max_by { |element| element[1] }
t = array.select { |element| element[1] == maximum[1] }
Run Code Online (Sandbox Code Playgroud)
另一种选择可能是按相关值(使用group_by)对所有元素进行分组,然后仅选择具有最大值的列表。
lists = array.group_by { |element| element[1] }
lists[lists.keys.maximum]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2183 次 |
| 最近记录: |