在Ruby中从数组中删除false和nil的惯用方式是什么?

时间:2019-06-05 15:22:14

标签: ruby

我想出了

ary.select{|v| v}

但是有更好的东西吗?

2 个答案:

答案 0 :(得分:6)

您可以删除不喜欢的值:

ary - [ nil, false ]

在Ruby 2.2中,您还可以删除 falsey 值:

ary.select(&:itself)

尽管那并不是真的很短。

您也可以这样做:

ary.delete(nil)
ary.delete(false)

进行就地修改。

答案 1 :(得分:1)

Array#compact,但是只会删除nil的值,如果您想更清楚地了解自己在这里所做的工作,则仅删除reject,否则您的建议很漂亮惯用的。