在Ruby中,当我在数组上调用reverse
方法时,它不会完全反向排序数组。
array = [5, 4, 9, 8, 7, 1, 2]
array.reverse # => [2, 1, 7, 8, 9, 4, 5]
我无法理解它在阵列上执行的操作。
答案 0 :(得分:3)
> array
=> [5, 4, 9, 8, 7, 1, 2]
> array.sort.reverse # it will sort the array by value in descending order
=> [9, 8, 7, 5, 4, 2, 1]
注意:强>
了解它的工作原理:
> array.reverse # it will reverse the array by indexing
=> [2, 1, 7, 8, 9, 4, 5]
> array.sort # it will sort the array by value in ascending order
=> [1, 2, 4, 5, 7, 8, 9]
答案 1 :(得分:1)
Array#reverse反转数组的顺序,但不按相反顺序对数组进行排序。
array = [1,5,7,3]
array.reverse
=> [3,7,5,1]
如果要以相反的顺序对数组进行排序,可以试试这个
array.sort_by{|a|array.max - a}