[1,2,3].forEach(function(el) { if(el === 1) break;}); 如何使用 JavaScript 中的新 forEach 方法执行此操作?我尝试过 return;、return false; 和 break。break 崩溃,return 正常
[1,2,3].forEach(function(el) {
if(el === 1) break;
});
我该如何使用 forEach
JavaScript 中的新方法来实现这一点?我试过了 return;
, return false;
, break
. break
崩溃了, return
除了继续迭代什么也没做。
引用 MDN documentation of Array.prototype.forEach()
:
除了抛出异常之外,没有其他方法可以停止或中断循环。如果您需要这样的行为,则该 方法 是
f或Each()
错误.forEach()
的 工具 ,请改用普通循环。如果您正在测试谓词的数组元素并需要布尔返回值,则可以改用every()
orsome()
。
对于您的代码(在问题中),如@bobince所建议的,请改用 Array.prototype.some()
。它非常适合您的用例。
Array.prototype.some()
对数组中存在的每个元素执行一次回调函数,直到找到一个回调函数返回真值(转换为 时变为 true 的值Boolean
)。如果找到这样的元素,some()
则立即返回 true。否则,some()
返回 false。回调仅对已分配值的数组索引调用;对于已删除或从未分配值的索引,不会调用它。