【问题标题】:Question about forEach and break/return in JavaScript [duplicate]关于 JavaScript 中的 forEach 和 break/return 的问题 [重复]
【发布时间】: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 与众不同?

谢谢!

【问题讨论】:

标签: javascript loops foreach


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    forEach 中运行的代码在一个不同的函数中

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-09
      • 2022-01-22
      • 1970-01-01
      • 2021-02-24
      • 2014-08-30
      • 1970-01-01
      • 2018-03-26
      相关资源
      最近更新 更多