如何在类型脚本中中断每个循环

我有一个下面的代码,其中我不能打破循环在某些条件。

 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;
}

在星号区域,我想 休息的代码,并返回布尔值,但我现在无法做到这一点。有人能帮帮我吗。

先谢谢你。

162357 次浏览

只要做 return false;。它将打破。

正常情况下是不可能从 forEach()突破的。

或者,您可以使用 数组,每个(),因为您希望在中断循环时返回 false

如果要返回 true,那么可以使用 数组。一些()

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;**
}
}
});

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

类型脚本允许更具可读性的代码。

使用 for循环的样式如下:

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

另外,忘掉 Angular 中的“使用 jQuery 编码”吧,它根本不起作用。

你不能‘ break’,它甚至不会运行,因为 break 指令在技术上并不在循环中。 解决办法? 用正常的 for 循环,没人会笑你的。

我认为更好的解决办法是使用。 当你找到一个值时,你可以返回一个值,然后中断循环。这是一个更简洁的解决方案

for (element of this.tab.committee.ratings) {
// and here you use your element, when you return a values it stops the cycle


if (element === something){
return element;
}
}

const blocks = document.querySelectorAll('.block');
var breakMe = false;


blocks.forEach((block, i) => {
if(breakMe == false) {
/*code that you want*/
if(i < 2) {
block.style.background = 'red';
} else if(i != 4) {
block.style.background = 'blue';
} else if(i == 4) {
breakMe = true;
/*change breackMe to true if you want to breack forEach*/
}
}


})
<!DOCTYPE html>
<html lang="en">
<body>
<div id="container">
<div class="block" style="width: 200px; height: 200px; background: purple; margin: 50px"></div>
<div class="block" style="width: 200px; height: 200px; background: purple; margin: 50px"></div>
<div class="block" style="width: 200px; height: 200px; background: purple; margin: 50px"></div>
<div class="block" style="width: 200px; height: 200px; background: purple; margin: 50px"></div>
<div class="block" style="width: 200px; height: 200px; background: purple; margin: 50px"></div>
</div>
</body>
</html>