<分区>
我有一个数组,其中一些值为 nil。我想用“0”替换那些 nils。
因此,如果我的数组是 @array = [nil, "2", nil, nil, "f"]
,我希望它发生:
> @array.method
=> ["0", "2", "0", "0", "f"]
我尝试使用 gsub
,但出现“数组的未定义方法‘gsub’”错误。
<分区>
我有一个数组,其中一些值为 nil。我想用“0”替换那些 nils。
因此,如果我的数组是 @array = [nil, "2", nil, nil, "f"]
,我希望它发生:
> @array.method
=> ["0", "2", "0", "0", "f"]
我尝试使用 gsub
,但出现“数组的未定义方法‘gsub’”错误。
最佳答案
您可以在数组上使用 map
并检查元素是否为 nil
,如果是则替换为 "0"
,如果不是,则保留值:
array = [nil, "2", nil, nil, "f"]
p array.map{|e| e.nil? ? '0' : e}
# => ["0", "2", "0", "0", "f"]
另一种方法是使用 Rails Object#presence
方法:
[nil, "2", nil, nil, "f"].map{|e| e.presence || '0'}
# => ["0", "2", "0", "0", "f"]
关于ruby-on-rails - 如何用不同的值替换数组中的给定值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44766944/