【发布时间】:2019-12-13 13:17:25
【问题描述】:
我是 JS 新手,我对 return 语句有疑问。 为什么我必须使用 return false 才能在 JS 中退出 forEach 循环?
这里可以正常工作:
let answer;
let found = false;
for (let i = 0; i < database.length; i++){
let p = database[i];
if (p.id === person.id){
database[i] = person; //Overwrite if found
answer = 'Person information changed.';
found = true;
break;
}
}
但另一方面,这不起作用:
database.forEach(element => {
if(element.email == req.body.email || element.nachname == req.body.nachname || element.vorname == req.body.vorname)
res.send(element);
break;
});
我收到此错误 -> SyntaxError: Illegal break statement.
这些循环之间有什么区别吗? 我知道你可以打破像 for、while 和 switch 循环这样的循环,但是是什么让 forEach 与众不同?
谢谢!
【问题讨论】:
-
@Ramesh — 这个问题已经注意到了。它在问为什么。
-
developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… 除了抛出异常之外,没有其他方法可以停止或中断 forEach() 循环。如果你需要这样的行为,那么 forEach() 方法也是错误的。
标签: javascript loops foreach