gpt4 book ai didi

ruby-on-rails - 空元素是否有等效的 Array#compact ?

转载 作者:数据小太阳 更新时间:2023-10-29 06:31:02 26 4
gpt4 key购买 nike

众所周知,Array#compact 从数组中删除了 nil 元素。

array.reject { |元素|元素.空? }

会删除像 [] 这样的空元素(在 rails 中你也可以使用 #blank? 来删除空元素 元素)。

有没有像 Array#compact 这样的删除空/空白元素的简写方法?还是使用 Array#reject 是我最好的选择?

我还没有看到 #compact 的“空”等价物,如果有的话。但也许我只是忽略了它。

最佳答案

是的!

array.reject &:empty?

然而,作为scarver2Hoang Le解释说,这将失败并显示 NoMethodError如果数组包含 nil


如果您使用 RailsActive Support ,你可以安全地写:

array.reject &:blank?

不会有错误,因为所有对象都响应 blank? , including nil .

还有另一种方法,如 mu is too short 所建议的那样:

array.select &:present?

好像present?是根据 blank? 实现的,所以两者都是合适的。

关于ruby-on-rails - 空元素是否有等效的 Array#compact ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17204461/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com