簡體   English   中英

如何在Ruby中對復雜的數組進行排序

[英]How to sort a complex array in ruby

我正在尋找一種適當的方式來對復雜數組進行升序或降序排序。

arr = [[100, 200, 300], [100, 250, 600], [50, 10, 1030]]

我想根據目標值[value,value,target_value]對數組進行排序

我有自己的方式來執行此操作,但是它看起來很丑且很慢。

我們是否有合適的方法在紅寶石中做到這一點?

提前致謝。

甚至更短:

arr.sort_by(&:last)

如果需要按降序排列:

arr.sort_by(&:last).reverse

分兩步進行排序和反轉似乎很麻煩,但實際上比sort {}語法要快

[[100, 200, 300], [100, 250, 600], [50, 10, 1030]].sort_by{|x| x[2]}

這是一種更明確地做到這一點的方法:

arr.sort { |a, b| a[2] <=> b[2] }

對於降序排序,只需顛倒順序即可:

arr.sort { |a, b| b[2] <=> a[2] }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM