ruby - 在修改同一个数组的同时遍历数组

标签 ruby

下面的数组迭代工作正常

data = [17, 22, 12, 24]
data.each do |item| 
   puts "number: #{item}"
end

我希望将每个新字符串插入到同一个数组中,而不是执行 puts .以下方法失败且没有错误。我不确定这是否会造成无限循环。

data = [17, 22, 12, 24]
data.each do |item| 
    data << "number: #{item}"
 end

我也试过insert而不是 << , 但同样的问题出现了。

最佳答案

如果要将新项添加到数组中,请执行以下操作:

data = [17, 22, 12, 24]
data.concat data.collect{|i| "number: #{i}"}
# data => [17, 22, 12, 24, "number: 17", "number: 22", "number: 12", "number: 24"]

如果您只想用新项目替换数据的内容:

data = data.collect{|i| "number: #{i}"}

关于ruby - 在修改同一个数组的同时遍历数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26610264/

相关文章:

ruby - 如何将 File.join 与 File::ALT_SEPARATOR 一起使用?

html - 获取最近父标签的内部文本

ruby - ruby 中的短 namespace 首字母缩写词

ruby - 使用 Ruby 将文件从一个目录复制到另一个目录

ruby-on-rails - 访问授权和访问 token 之间的区别

ruby-on-rails - 如何在 Rails 中生成类似确认页面的临时页面?

ruby-on-rails - CanCan 跳过某些操作的授权

ruby-on-rails - 何时在 Rails 应用程序中使用单引号与双引号

ruby-on-rails - 捆绑安装不适用于 bundler 2.0.1 的 rails-4.2.6

ruby-on-rails - 如何让 'bundle init' 默认包含 gem ?