我有一个哈希数组,应该很容易排序,但是由于我对 ruby 非常陌生并且仍在查看文档,因此我在对键值组合很少但需要根据排序的哈希进行排序时遇到了问题多个键值。
[{:attr1 => 3, :attr2 => 'test', attr3 => 'test2'},
{:attr1 => 1, :attr2 => 'test', attr3 => nil},
{:attr1 => 1, :attr2 => 'test', attr3 => 'test3'},
{:attr1 => 2, :attr2 => 'test', attr3 => 'test3'}]
所以我想根据自定义规则对其进行排序。自定义规则将首先查看attr1
并按降序排序。
如果有相同attr1
的值,但其中之一attr3
是nil
最后排序为 nil 的值。
所以我想我需要创建自定义比较器,或者不需要。我怎样才能以最少的痛苦做到这一点?
如果要对其进行排序,它将如下所示:
[{:attr1 => 3, :attr2 => 'test', attr3 => 'test2'},
{:attr1 => 2, :attr2 => 'test', attr3 => 'test3'},
{:attr1 => 1, :attr2 => 'test', attr3 => 'test3'},
{:attr1 => 1, :attr2 => 'test', attr3 => nil}
]