好吧,假设我有一个像 [[z,1], [d,3], [e,2]] 这样的数组,如何按每个组成数组的第二个元素对该数组进行排序?这样我的数组就会如下所示? [[z,1]、[e,2]、[d,3]]?
arr = [[:z,1], [:d,3], [:e,2]] arr.sort {|a,b| a[1] <=> b[1]} # => [[:z, 1], [:e, 2], [:d, 3]]
或者正如用户 @Phrogz 指出的那样,如果内部数组每个恰好有两个元素:
arr.sort_by{|x,y|y} # => [[:z, 1], [:e, 2], [:d, 3]] arr.sort_by(&:last) # => [[:z, 1], [:e, 2], [:d, 3]]