Arrays 按照Ruby中包含元素的哈希键按升序和降序对数组进行排序

Arrays 按照Ruby中包含元素的哈希键按升序和降序对数组进行排序,arrays,ruby,sorting,Arrays,Ruby,Sorting,阵列是: x= [{:dog=> :dog}, {:ant=> :ant}, {:cat=> :cat}] 我想知道是否有人能解释一下如何做到这一点,以及两个订单的最终结果是什么样子。x.sort\u by(&:keys) x.sort_by(&:keys) x.sort do |first_hash, second_hash| second_hash.keys <=> first_hash.keys end x、 排序do |第一个散列,第二个散

阵列是:

x= [{:dog=> :dog}, {:ant=> :ant}, {:cat=> :cat}]
我想知道是否有人能解释一下如何做到这一点,以及两个订单的最终结果是什么样子。

x.sort\u by(&:keys)
x.sort_by(&:keys)

x.sort do |first_hash, second_hash|
  second_hash.keys <=> first_hash.keys
end
x、 排序do |第一个散列,第二个散列| 第二个\u hash.keys第一个\u hash.keys 终止
您有一个包含一个元素的哈希数组。在升序的情况下,您可以说您希望按散列的键排序。它将默认为字母比较

对于降序情况,必须将连续哈希与
运算符进行比较,如果
ab
(给定
ab
),则该运算符返回
-1
)。我们只需交换
a
b
的位置即可获得降序。

x.sort\u by(&:keys)
x、 排序do |第一个散列,第二个散列|
第二个\u hash.keys第一个\u hash.keys
终止
您有一个包含一个元素的哈希数组。在升序的情况下,您可以说您希望按散列的键排序。它将默认为字母比较


对于降序情况,必须将连续哈希与
运算符进行比较,如果
ab
(给定
ab
),则该运算符返回
-1
)。我们只需交换
a
b
的位置即可获得降序。

您也可以只
x.sort_by(&:keys)
,无需
first
或:
x.sort_by{h | h.first.first}
。对于降序,在v2.2中,您可以这样做:
x.max_by(x.size){h | h.first.first}
。感谢大家的帮助,尤其是ndn!您也可以只使用
x.sort_by(&:keys)
,不需要
first
或:
x.sort_by{h | h.first.first}
。对于降序,在v2.2中,您可以这样做:
x.max_by(x.size){h | h.first.first}
。感谢大家的帮助,尤其是ndn!