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);
      }
    }