You can't break from a forEach. I can think of three ways to fake it, though.
1. The Ugly Way: pass a second argument to forEach to use as context, and store a boolean in there, then use an if. This looks awful.
2. The Controversial Way: surround the whole thing in a try-catch block and throw an exception when you want to break. This looks pretty bad and may affect performance, but can be encapsulated.
3. The Fun Way: use every().
['a', 'b', 'c'].every(function(element, index) {
// Do your thing, then:
if (you_want_to_break) return false
else return true
})
You can use some() instead, if you'd rather return true to break.
查看
https://stackoverflow.com/questions/6260756/how-to-stop-javascript-foreach
https://www.cnblogs.com/PheonixHkbxoic/p/5708749.html