[tslint]Expected a 'for-of' loop instead of a 'for' loop with this simple iteration (prefer-for-of)

JavascriptVisual StudioTypescriptFor LoopTslint

Javascript Problem Overview


I have got a tslint error to my for loop when I try to resolve it it says to convert to for-of. I have seen many docs but its not helpful.How can I solve the lint error and I cannot do tslint:disable-next-line:prefer-for-of

for (let i = 0; i < this.rows.length; ++i) {
    if (!this.rows[i].selected) {
        this.selectAllChecked = false;
        break;
    }
}

Javascript Solutions


Solution 1 - Javascript

It is asking you to use format like the following. The of keyword loops over the objects in the array instead of looping over the indexes of the array. I'm assuming it is triggering because you are only using the index as a way of getting to the value in the array (which can be cleaned up using the of syntax).

for (let row of this.rows) {
    if (!row.selected) {
        this.selectAllChecked = false;
        break;
    }
}

As a note, you can accomplish the same thing using the following one-liner:

this.selectAllChecked = this.rows.every(row => row.selected);

Solution 2 - Javascript

In tslint.json we can add inside the rules:

"rules": {
    "prefer-for-of": false
}

This will resolve the issue by disabling the relevant lint rule.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionJukeView Question on Stackoverflow
Solution 1 - JavascriptDaniel W StrimpelView Answer on Stackoverflow
Solution 2 - JavascriptNiranjana V SView Answer on Stackoverflow