46 lines
1000 B
Plaintext

== Why is this an issue?
Loop counters should not be modified in the body of the loop. However other loop control variables representing logical values may be modified in the loop, for example a flag to indicate that something has been completed, which is then tested in the for statement.
=== Noncompliant code example
[source,javascript]
----
var names = [ "Jack", "Jim", "", "John" ];
for (var i = 0; i < names.length; i++) {
if (!names[i]) {
i = names.length; // Non-Compliant
} else {
console.log(names[i]);
}
}
----
=== Compliant solution
[source,javascript]
----
var names = [ "Jack", "Jim", "", "John" ];
for (var name of names) {
if (!name) {
break; // Compliant
} else {
console.log(name);
}
}
----
ifdef::env-github,rspecator-view[]
'''
== Implementation Specification
(visible only on this page)
include::message.adoc[]
include::highlighting.adoc[]
endif::env-github,rspecator-view[]