ruby-on-rails - 如何用不同的值替换数组中的给定值?

标签 ruby-on-rails arrays ruby 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/

相关文章:

c# - 使用数组和 redim 保护器关键字将 VB 代码转换为 C#

python - 在 pandas.DataFrame 中添加一个 np.array 作为列

安装 ri 文档时 Ruby gem 失败

ruby-on-rails - Rails 多选默认值

ruby-on-rails - Rails 4 按模型方法求和

c - 在另一个函数中使用在一个函数中创建的数组

ruby-on-rails - 设计身份验证 gem : How to save the logged in user id?

ruby - gem 安装/更新失败,出现 "no implicit conversion of nil into String"

mysql - 选择查询 Rails 中的值元组

ruby-on-rails - 如何重置 Dockerized Rails 应用程序以进行集成测试?