您是否了解更好,更快,更智能,更高效或更优雅的方式来执行以下操作?
由于这个数组
a = [171, 209, 3808, "723", "288", "6", "5", 27, "22", 207, 473, "256", 67, 1536]
得到这个
a.map{|i|i.to_i}.sort{|a,b|b<=>a}
=> [3808, 1536, 723, 473, 288, 256, 209, 207, 171, 67, 27, 22, 6, 5]
答案 0 :(得分:2)
您可以使用就地突变来避免创建新数组:
a.map!(&:to_i).sort!.reverse!
如果没有基准测试,很难知道它是否更快或更有效。
答案 1 :(得分:2)
这是使用symbol#to_proc
a.map(&:to_i).sort.reverse
这比使用就地修饰符(!
)方法更快但使用更多内存。作为奖励,如果你想用它做任何其他事情,它会保持原始数组a
完整。