我是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:非法的break语句。
这些循环之间是否有区别? 我知道您可以中断for,while和switch循环,但是forEach与众不同的原因是什么?
谢谢!
答案 0 :(得分:2)
原因是我们正在将回调函数传递给forEach
函数。这意味着您不能使用诸如break
和continue
之类的循环条件。
答案 1 :(得分:1)
在forEach
中运行的代码在不同函数中。