簡體   English   中英

如何通過每個數組中的第二個值對此數組數組進行排序?

[英]How can I sort this array of arrays by the second value in each array?

我有以下數組:

[[1, 2], [44, 1], [18395, 3]]

我通過使用此代碼獲得的:

current_user.friends_products.where("units.primary_image_id IS NOT NULL").group_by{|u| u.creator_id}.map {|k,v| [k, v.length]}

我想按每個數組的第二個值從最大到最小排序數組。 所以,這就是我想要實現的目標:

[[18395, 3], [1, 2], [44, 1]]

使用#sort_by和第二個元素降序:

x = [[1, 2], [44, 1], [18395, 3]]
x.sort_by { |a, b| -b }
#=> [[18395, 3], [1, 2], [44, 1]]
[[1, 2], [44, 1], [18395, 3]].sort_by(&:last).reverse

您可以使用此Array#sort塊:

[[1, 2], [44, 1], [18395, 3]].sort { |a, b| b[1] <=> a[1] }
# => [[18395, 3], [1, 2], [44, 1]]
arr =[[1, 2], [44, 1], [18395, 3]]
arr.sort_by{|x,y|y}.reverse
# => [[18395, 3], [1, 2], [44, 1]]

暫無
暫無

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

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