array=['red', 'green', 'blue', 'purple']
array.each do | color |
puts(color)
if color == 'green'
array.delete(color)
end
end
这打印红色,绿色,紫色。我明白,array.delete混淆迭代,但我的问题是为什么以及如何?引擎盖背后发生了什么?如果我将数组替换为array.delete(color),例如数组< <'white',则将打印所有颜色,因此只有当从数组中删除项时才会出现此行为。为什么Array#删除跳过“蓝色”并在删除“绿色”时打印“绿色”?