如何在 TypeScript 中打破 ForEach 循环

新手上路,请多包涵

我有下面的代码,在某些情况下我无法打破循环。

  isVoteTally(): boolean {

 let count = false;
    this.tab.committee.ratings.forEach(element => {

      const _fo = this.isEmptyOrNull(element.ratings.finalOutcome.finaloutlook);
      const _foreign = this.isEmptyOrNull(element.ratings.finalOutcome.foreign);
      const _local = this.isEmptyOrNull(element.ratings.finalOutcome.local);
      const _tally = element.ratings.finalOutcome.voteTally.maj + element.ratings.finalOutcome.voteTally.dis;

      if (_fo == false && _foreign == false && _local == false) {
        if (_tally > 0) {
          **return count = false;**
        }
      } else {
        if (_tally < 0) {
          **return count = false;**
        }
      }
    });
    return count;
  }

在星标区域,我想 破解 代码并返回布尔值,但我现在无法做到。有谁能够帮我。

提前致谢。

原文由 Arka 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 929
2 个回答

不能正常从 forEach() 中断。

或者,您可以使用 Array.every() 因为您希望在中断循环时返回 false

如果你想返回 true,那么你可以使用 Array.some()

 this.tab.committee.ratings.every(element => {

  const _fo = this.isEmptyOrNull(element.ratings.finalOutcome.finaloutlook);
  const _foreign = this.isEmptyOrNull(element.ratings.finalOutcome.foreign);
  const _local = this.isEmptyOrNull(element.ratings.finalOutcome.local);
  const _tally = element.ratings.finalOutcome.voteTally.maj + element.ratings.finalOutcome.voteTally.dis;

  if (_fo == false && _foreign == false && _local == false) {
    if (_tally > 0) {
      **return count = false;**
    }
  } else {
    if (_tally < 0) {
      **return count = false;**
    }
  }
});

原文由 Amit Chigadani 发布,翻译遵循 CC BY-SA 4.0 许可协议

this.tab.committee.ratings.forEach 不是操作员。

打字稿允许更多可读的代码。

使用 for 循环样式如下:

 for (let a of this.tab.committee.ratings) {
   if (something_wrong) break;
}

ps 忘记 Angular 中的“使用 jQuery 编码”。它只是行不通。

原文由 Roberc 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题