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