首页 > 解决方案 > 关于 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 不同?

谢谢!

标签: javascriptloopsforeach

解决方案


原因是我们将回调函数传递给forEach函数。这意味着您不能使用循环条件,例如breakand continue


推荐阅读