在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
方法的塊參數進行定制。