通过Ruby中包含元素的哈希键以升序和降序对数组进行排序

时间:2015-09-08 18:42:11

标签: arrays ruby sorting

数组是:

x= [{:dog=> :dog}, {:ant=> :ant}, {:cat=> :cat}]

我想知道是否有人可以解释如何执行此操作以及两个订单的最终结果是什么样的。

1 个答案:

答案 0 :(得分:6)

x.sort_by(&:keys)

x.sort do |first_hash, second_hash|
  second_hash.keys <=> first_hash.keys
end

你有一个带有一个元素的哈希数组。在升序的情况下,你可以说你想通过哈希的键来订购。它将默认为字母比较。

对于降序,您必须将连续的哈希与<=>运算符进行比较,如果-1则返回a<b,如果相等则返回0 1 } a>b(给定a <=> b)。我们只是交换ab的地点以获得降序。