如何处理我正在排序的数组中的nil元素?

时间:2012-05-26 17:23:11

标签: ruby

我在这样的数组上调用sort

new_list = my_array.sort

我得到的错误是:

NoMethodError: undefined method `<=>' for nil:NilClass

如何处理这种简单排序的无案例?

我最初进行了破坏性排序调用(即sort!)并将其更改为常规sort,但仍然会抛出此错误。

思想?

2 个答案:

答案 0 :(得分:5)

好吧,我假设你不需要/想要nils,所以......

new_list = my_array.compact.sort

答案 1 :(得分:3)

如果你想忽略nils,你可以这样做:

new_list = my_array.compact.sort

compact复制数组,跳过nil