所以我有一系列哈希:
[{"id":"30","name":"Dave"},{"id":"57","name":"Mike"},{"id":"9","name":"Kevin"},... {"id":"1","name":"Steve"}]
我想用id属性对它进行排序,所以它看起来像这样:
[{"id":"1","name":"Steve"},{"id":"2","name":"Walter"},... {"id":"60","name":"Chester"}]
我假设我使用sort_by方法,但我不确定如何做到这一点.
解决方法
这应该工作:
array.sort_by { |hash| hash['id'].to_i }
在这种情况下,sort_by优先于sort,因为它更有效.虽然sort对每次比较调用to_i,但sort_by会对数组中的每个元素执行一次并记住结果.