以下数组迭代正常运行
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
而不是<<
,但同样的问题出现了。
答案 0 :(得分:2)
如果要将新项添加到数组中,请执行以下操作:
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}"}
答案 1 :(得分:1)
使用Array#map!
方法:
data = [17, 22, 12, 24]
data.map! { |item| "number: #{item}" }
结果:
["number: 17", "number: 22", "number: 12", "number: 24"]