Ich habe versucht, diesen Code in Ruby auszuführen:Warum durchläuft nicht jeder Iterator das gesamte Array?
array=[1,2,3,4,5]
array.each do |x|
puts array.length
puts "Downloading #{array.length} files"
array.pop
end
Ich habe:
5
Downloading 5 files
4
Downloading 4 files
3
Downloading 3 files
Ich verstehe nicht, warum ich nur drei Iterationen zu bekommen. Was mache ich falsch (abgesehen davon, dass keine while
Schleife verwendet wird)?
Mutieren Sie keine Aufzählungen während der Iteration. Diese Frage wurde Dutzende Male beantwortet. – mudasobwa
Relevante Frage: [Wert des Array-Elements ändern, auf das in einer .each-Schleife verwiesen wird?] (http://stackoverflow.com/q/5646710/2620080) –
Wenn Sie eine Erklärung zu dem, was Sie wollen, angeben, können wir Ihnen möglicherweise eine andere Lösung anbieten. –