给定一个复杂对象的数组,一个将每个对象映射到 Comparable 值的算法,以及找到这样的最小值的愿望,是否有一个内置的库方法可以一次性完成?
有效但并非完全有效的解决方案:
# Iterates through the array twice
min = objects.map{ |o| make_number o }.min
# Calls make_number one time more than is necessary
min = make_number( objects.min_by{ |o| make_number o } )
高效但冗长的解决方案:
min = nil
objects.each{ |o| n=make_number(o); min=n if !min || n<min }