我想迭代使用forEach
,并且当正确的元素被找到时,返回值。我的印象是forEach
内的一个简单的return
就足够了,但得知调用语句的结果是undefined
。如何从forEach退出拥抱方法?
因此,我不得不声明一个输出变量的作用域为整个方法,并勾选了所有元素,尽管已经找到了正确的那个。 (元素是唯一的。)
getMenuIndex(url) {
let output = -1;
this.menus.forEach(app => {
app.subs.forEach(sub => {
console.log(sub.link + " vs " + url);
if (sub.link === url)
// return sub.id;
output = sub.id;
});
});
return output;
}
这是代码味道很长的路。有没有更好的方法来选择匹配URL条件的元素的ID?
[没有forEach的内置中断](http://stackoverflow.com/questions/2641347/how-to-short-circuit-array-foreach-like-calling-break) – Hodrobond
而不是'forEach '你可以使用'find'。通过'Array.find'你可以通过返回'true'来停止迭代。 – Titus
@Titus真实但不适用于我的情况。这个东西,如示例中所示是一个嵌套的生物。在实际的程序中,嵌套具有更深的层次。否则,好的建议,队友。 –