我有一个下面的代码,在某些情况下,我无法打破循环。
function 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;
}
在星号标记的区域,我想 break 代码并返回布尔值,但是我做不到。怎么做呢?
6条答案
按热度按时间qc6wkl3g1#
this.tab.committee.ratings.forEach
不是运算符。Typescript允许编写可读性更强的代码。
按如下方式使用
for
循环:另外,忘了Angular中的“用jQuery编码”,它根本不起作用。
tnkciper2#
无法正常从
forEach()
断开。或者,您可以使用Array.every(),因为您希望在中断循环时返回
false
。如果要返回true,则可以使用Array.some()
niwlg2el3#
你不能'break',它甚至不会运行,因为break指令在技术上不在循环中。解决方法?只要使用一个普通的for循环。没有人会嘲笑你。
vc9ivgsu4#
我认为更好的解决方案是使用for。使用for可以在找到一个值时返回该值并中断循环。这是一个更简洁的解决方案
bwitn5fc5#
ujv3wf0j6#
只要做
return false;
就行了它会坏的。