如何通过每个数组中的第二个值对此数组数组进行排序?

Snu*_*ber 2 ruby ruby-on-rails

我有以下数组:

[[1, 2], [44, 1], [18395, 3]]
Run Code Online (Sandbox Code Playgroud)

我通过使用此代码获得的:

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

我想按每个数组的第二个值从最大到最小排序数组.所以,这就是我想要实现的目标:

[[18395, 3], [1, 2], [44, 1]]
Run Code Online (Sandbox Code Playgroud)

Mar*_*off 5

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

x = [[1, 2], [44, 1], [18395, 3]]
x.sort_by { |a, b| -b }
#=> [[18395, 3], [1, 2], [44, 1]]
Run Code Online (Sandbox Code Playgroud)