我想迭代使用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真實但不適用於我的情況。這個東西,如示例中所示是一個嵌套的生物。在實際的程序中,嵌套具有更深的層次。否則,好的建議,隊友。 –