【发布时间】:2016-10-12 17:35:14
【问题描述】:
我有一个哈希数组,我想根据:reference 值对其进行排序。但是数组中的某些元素没有:reference 键,因此无法排序。有没有办法忽略这个字段,只对包含这个键的哈希元素进行排序?
我尝试了以下方法,但出现参数错误
ArgumentError: comparison of NilClass with String failed
sort_by at org/jruby/RubyEnumerable.java:503
arr1 = [{:reference=> "F123",
:name=> "test4"
},
{
:reference=> "ZA4",
:name=> "test3"
},
{
:reference=> "A43",
:name=> "test2"
},
{
:name=> "test1"
},
{
:name=> "homework1"
}]
arr1 = arr1.sort_by { |hash| hash[:reference] }
puts arr1
正确的输出应该是这样的:
=> arr1= [
{:reference=>"A43", :name=>"test2"},
{:reference=>"F123", :name=>"test4"},
{:reference=>"ZA4", :name=>"test3"},
{:name=> "test1"},
{:name=> "homework1"}
]
【问题讨论】: