javascript - 关于 JavaScript 中 forEach 和 break/return 的问题
问题描述
我是 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 不同?
谢谢!
解决方案
原因是我们将回调函数传递给forEach
函数。这意味着您不能使用循环条件,例如break
and continue
。
推荐阅读
- javascript - 加载资源失败:服务器在向我的网站添加 google+ 评论时响应状态为 404 ()
- ios - 使用 UIBezierPath 可视化冒泡排序
- java - XML 解析如何在 SAX 解析器中工作?
- laravel - 使用 laravel eloquent 合并/连接数据行
- python - Django 审核系统
- python - 提高 For 循环 Python 的速度
- c - Termcap tgetstr 获取箭头键
- java - 如何使用 Rest Assured 解析空白响应标头
- c++ - Qt用CMake调用c++函数
- ios - 我可以从我的 iOS 应用程序中打开 Numbers 电子表格应用程序吗?