在Ruby中,有多种方法可以对数组进行排序。以下是一些常用的排序方法:
- 使用
sort
方法:
arr = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5] sorted_arr = arr.sort puts sorted_arr.inspect
这将输出排序后的数组:[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
。
- 使用
sort!
方法(原地排序):
arr = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5] arr.sort! puts arr.inspect
这将直接修改原始数组,输出排序后的数组:[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
。
- 使用
sorted
方法(返回新数组,不修改原始数组):
arr = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5] sorted_arr = arr.sorted puts sorted_arr.inspect
这将输出排序后的新数组:[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
,原始数组保持不变。
- 使用
sort_by
方法(根据对象的某个属性进行排序):
arr = [{name: "Alice", age: 30}, {name: "Bob", age: 25}, {name: "Cathy", age: 35}] sorted_arr = arr.sort_by { |item| item[:age] } puts sorted_arr.inspect
这将输出根据年龄排序后的数组:[{name: "Bob", age: 25}, {name: "Alice", age: 30}, {name: "Cathy", age: 35}]
。
这些方法可以满足大部分排序需求。如果需要更复杂的排序规则,可以使用Array#sort
方法的块参数进行定制。