js 跳出 forEach 循环
其实就是在 forEach 中实现了 continue 的功能
现在有一个二重循环
1 | routeMsg.forEach((bigItem, index) => { |
需求要在外层的 item.id === 内层的 item.id 时 status[index] = 1
但是如果在 status[index] = 1 时不跳出循环的话,在下一次内层循环时,会执行 status[index] = 0,因为此时 index 是不会变的,所以就覆盖了上一次置 1 的数据.
JavaScript 中跳出 for 循环用的是 break, 但是 Array.forEach 却没有可以直接跳出循环的语句,需要在 forEach 外加上一层 try/catch, 然后在需要跳出循环的地方写 throw (new Error('continue'))
,这样代码就会跳出内层循环,外层循环的 index 也就会+1
代码如下:
1 | routeMsg.forEach((bigItem, index) => { |