C#开发人员在这里。尝试做一些TypeScript。只是遇到了些奇怪的行为。但是,考虑一下它更有意义,我想知道是否有更好的方法可以做到这一点-似乎从foreach中返回并不会从包含foreach循环的函数中返回,这可能是C#开发人员的期望。
只是想知道是否有更清洁的方法:
example() {
var forEachReturned;
this.items.forEach(item => {
if (true) {
forEachReturned = true;
return;
}
});
if (forEachReturned) {
return;
}
// Do stuff in case forEach has not returned
}
谢谢!
答案 0 :(得分:7)
更干净的方法是不使用.forEach
。如果您使用的是TypeScript,几乎不需要它:
example() {
for (let item of this.items) {
if (true) {
return;
}
}
// Do stuff in case forEach has not returned
}
如果循环内的代码没有任何副作用,而您只是在检查每个项目的条件,则还可以对.some
使用功能性方法:
example() {
if (this.items.some(item => item === 3)) {
return;
}
// Do stuff in case we have not returned
}