我有一个以时间戳为键的哈希。
hash = {
"2016-05-31T22:30:58+02:00" => {
"path" => "/",
"method" => "GET"
},
"2016-05-31T22:31:23+02:00" => {
"path" => "/tour",
"method" => "GET"
},
"2016-05-31T22:31:05+02:00" => {
"path" => "/contact_us",
"method" => "GET"
}
}
我订购了这个系列并得到了第一双这样的:
hash.sort_by {|k, _| k}.first.first
但是我该如何删除它呢?
删除
方法 requires you知道 key 的准确拼写。当然我可以返回 key ,然后在 delete
方法中使用它,但我在想是否有更直接的方法?
最佳答案
您正在寻找的方法是 hash.keys
它返回一个键数组:
hash.delete(hash.keys.min)
编辑:我更新了答案以反射(reflect)必须先对键进行排序,这已添加到原始问题中并由@Shadwell 在对这篇文章的评论中提出。
我按照@Cary Swoveland 的建议将 hash.keys.sort.first
替换为 hash.keys.min
,它不仅性能更高,而且在语义上更好。
关于ruby-on-rails - Order Hash 并删除第一个键值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37555337/