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 .forEach
niet 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
}