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

----
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

----
var names = [ "Jack", "Jim", "", "John" ];
for (var name of names) {
  if (!name) {
    break;                                 // Compliant
  } else {
    console.log(name);
  }
}
----

