我有代码根据所有对象共享的常用方法/值对对象数组进行排序,但它不能正常工作。该代码应该根据增加的值给出X最高总数,但是如果我.first(10)
它会错过最高值。如果我first(50)
,我会看到更多,但仍有一些更高的值丢失。在这里发生了什么,不应该排序并反向确保first(x)
将返回具有最高总和的数组?似乎first
在没有完成排序的情况下抓住了。
some_array = old_array.sort_by{ |ar| ar.sum(&:ppd) }.reverse.first(10)
以下是old_array在增加清晰度时的外观示例
old_array = [
[ obj1, obj2 ], #obj1.ppd + obj2.ppd = 50
[ obj3, obj4 ], #sum ppd = 55
[ obj5, obj6 ], #sum ppd = 60, does not show in first(10)
... #and so on with dozens more
]