gpt4 book ai didi

ruby-on-rails - 如何过滤掉数组中的空元素

转载 作者:太空宇宙 更新时间:2023-11-03 17:14:30 25 4
gpt4 key购买 nike

我有一行代码遍历数组并拒绝任何空元素:

survey.reject!(&:empty?).map! { |feedback| %(_"#{feedback}"_) }

如果整个数组为空,这将按预期工作。如果数组中的元素之一不为空,我会收到错误消息 map! doesn't exist。

然而,这没有问题:

survey.map! { |feedback| %(_"#{feedback}_") }

reject 函数在整个数组为空时起作用,而 map! 版本在数组不为空时起作用。我怎样才能最好地巩固这些?

最佳答案

使用就地修饰符时必须小心。作为the documentation for reject! says :

Deletes every element of self for which the block evaluates to true, if no changes were made returns nil.

由于该功能,您不能像链接可靠复制的版本那样链接这些。

你可以做的是分两行:

survey.reject!(&:empty?)
survey.map! { |feedback| %(_"#{feedback}"_) }

或者您可以链式重新分配:

survey = survey.reject(&:empty?).map { |feedback| %(_"#{feedback}"_) }

关于ruby-on-rails - 如何过滤掉数组中的空元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38983589/

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