如何从函数内部的 .forEach 内部完全退出
Posted
技术标签:
【中文标题】如何从函数内部的 .forEach 内部完全退出【英文标题】:How can I completely exit from inside a .forEach that is inside a function 【发布时间】:2016-10-12 08:04:11 【问题描述】:我有这个方法:
wordFormDirty = (): boolean =>
var self = this;
angular.forEach(self.word.wordForms, function (wf, key)
var wordFormNgForm = 'wordFormNgForm_' + wf.wordFormId
if (!self[wordFormNgForm].$pristine)
return true;
);
return false;
;
据我所知,这永远不会返回 true。有人可以给我一些建议,告诉我如何实现这一点,这样一个非原始的表单就会使 wordFormDirty() 方法返回 true。
【问题讨论】:
内部函数返回true,我猜你希望外部函数返回true?只需使用普通的for
循环即可。
试试some
看看。
***.com/questions/13843972/angular-js-break-foreach
顺便说一句,这是 TypeScript?
【参考方案1】:
如果您希望直接通过Array
获得结果,请考虑使用forEach
以外的其他方法。例如:
return Object.values(this.word.wordForms).some(
( wordFormId ) => !this[`wordFormNgForm_$wordFormId`].$pristine
);
【讨论】:
我非常喜欢这个想法,但您能解释一下您的示例中 Object.values 的含义以及如何在我的方法中使用它吗? 我在 ES7 中编写了我的代码示例。如果您的环境不支持某些功能,您可以填充它们或找到替代方案,例如使用来自 Lodash 的_.some
。或者如果wordForms
已经是Array
,你可以直接使用.some
。【参考方案2】:
你能试试这个吗,在这种情况下,如果我不明白这个问题,第一次有一个值 true 时结果设置为 true 否则它仍然是 false
wordFormDirty = (): boolean =>
var self = this;
var result = false;
angular.forEach(self.word.wordForms, function (wf, key)
var wordFormNgForm = 'wordFormNgForm_' + wf.wordFormId
if (!self[wordFormNgForm].$pristine)
result = true;
);
return result;
;
【讨论】:
以上是关于如何从函数内部的 .forEach 内部完全退出的主要内容,如果未能解决你的问题,请参考以下文章