TypeScript foreach return

Ik vraag me af of er een betere manier is om dit te doen – het lijkt erop dat terugkeren uit een foreach niet terugkeert uit de functie die de foreach-lus bevat, wat een verwachting kan zijn van C#-ontwikkelaars.

Ik vraag me af of er een schonere manier is om dit te doen:

example() {
    var forEachReturned;
    this.items.forEach(item => {
        if (true) {
            forEachReturned = true;
            return;
        }
    });
    if (forEachReturned) {
        return;
    }
    // Do stuff in case forEach has not returned
}

Antwoord 1, autoriteit 100%

De schonere manier zou zijn om .forEachniet te gebruiken. Het is bijna nooit nodig als u TypeScript of een moderne versie van JavaScript gebruikt:

example() {
    for (let item of this.items) {
        if (item === 3) {
            return;
        }
    }      
    // Do stuff in case forEach has not returned
}

Als de code in je lus geen bijwerkingen heeft en je alleen maar controleert op een voorwaarde voor elk item, kun je ook een functionele benadering gebruiken met .some:

example() {
    if (this.items.some(item => item === 3)) {
        return;
    }
    // Do stuff in case we have not returned
}

Other episodes