我正在尝试通过对象的属性在Ruby中对数组进行排序,但我认为这行代码对数组中的nil元素进行操作。
@my_array.sort_by {|object| object.attribute}
如何确保在我的数组上调用的方法不调用nil元素上的方法?
答案 0 :(得分:1)
排序前你可以compact数组(这将删除无元素)
sorted_arr = @my_array.compact.sort_by {|object| object.attribute}
此外,这是此特定案例的快捷方式
sorted_arr = @my_array.compact.sort_by(&:attribute)