Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 空元素是否有Arraycompact的等价物?_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 空元素是否有Arraycompact的等价物?

Ruby on rails 空元素是否有Arraycompact的等价物?,ruby-on-rails,ruby,Ruby On Rails,Ruby,众所周知,Arraycompact从数组中删除nil元素 array.reject{| element | element.empty?} 是否要删除rails中的[]之类的空元素,也可以执行blank操作?除去空元素和nil元素 是否有删除空/空白元素(如Arraycompact)的速记方法?还是使用Arrayreject是我的最佳选择 我还没有看到compact的空等价物,如果有的话。但也许我只是忽略了它。是的 array.reject &:empty? 但是,正如和所解释的,如果

众所周知,Arraycompact从数组中删除nil元素

array.reject{| element | element.empty?}

是否要删除rails中的[]之类的空元素,也可以执行blank操作?除去空元素和nil元素

是否有删除空/空白元素(如Arraycompact)的速记方法?还是使用Arrayreject是我的最佳选择

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

是的

array.reject &:empty?
但是,正如和所解释的,如果数组包含nil,则此操作将失败

如果您正在使用或,您可以安全地编写:

array.reject &:blank?
不会有错误,因为所有对象都响应

还有另一种方法,如下所示:


它似乎是在执行方面的空白?因此两者都是合适的。

从Rails 6.1.3.1开始,您有:

数组=[,a,nil] array.compact_blank =>[a]
由于它是在Enumerable上定义的,您也可以在哈希上使用它。

从今天起,Rails 6.1现在已经支持compact\u blank


我想您也可以设置数组。选择&:present?在Rails中,如果读得更好的话;出于某种原因,我通常只想在做Arraymap时使用&muistooshort。@select&:present是个好主意吗?如果所有元素都为空,则返回空数组。拒绝方法返回nil导致连续的方法(如join或map)失败。是的,我认为是array.select&:present?这是最好的解决办法。顺便说一句,array.reject&:空?当数组包含nil对象时,可能会引发错误,这是不好的。虽然这可能会回答问题,但如果可能,您应该在回答中包含答案中提供的链接中的最重要的详细信息。如果链接停止工作或内容发生重大变化,这有助于防止您的答案无效。
array.select &:present?