TypeScript foreach返回

时间:2018-08-16 09:20:35

标签: javascript c# typescript

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
}

谢谢!

1 个答案:

答案 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
}