【发布时间】:2015-11-07 05:10:22
【问题描述】:
如果需要,我想了解如何使用键和/或它们的子键对 ruby 哈希进行排序。例如:
带有 sub_hashs 的哈希示例
two_hash = {
'a' => {'displayName' => "A", 'name' => "Apple", 'Association' => {'id' => '1', 'type' => 'B2'}},
'c' => {'displayName' => "D", 'name' => "Banana", 'Association' => {'id' => '1', 'type' => 'B3'}},
'b' => {'displayName' => "C", 'name' => "Orange", 'Association' => {'id' => '1', 'type' => 'B1'}},
'd' => {'displayName' => "B", 'name' => "Kiwi", 'Association' => {'id' => '1', 'type' => 'B4'}}
}
目前我可以这样排序,调用并指定要排序的键/子键。
puts (two_hash.sort_by {|h, k| k['displayName']})
puts (two_hash.sort_by {|h, k| k['Association']['type']})
我想将它转换为 proc 并在我想要输入子键时使用它。
我想要它,所以我可以传入一个键或子键,它会为我排序。像这样,有没有办法在 Ruby 中做到这一点?
sort_stuff_method(two_hash, ['displayname'])
sort_stuff_method(two_hash, ['Association']['type'])
【问题讨论】: