今天摸鱼的时候在掘金看到一篇跳出 forEach 的短文

我们都知道,forEach 是没办法像 for / while 那样优雅的跳出循环的

要么通过 throw 抛出异常中断循环,但是程序也就停止运行了

然后我就神奇的在评论区看到了说控制数组的 length

你别说,你还真别说,评论全是出院!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
const arr = [1, 2, 3, 4, 5]

arr.forEach((item, index) => {
if (item === 3) {
// 报错终止,不优雅
// throw new Error('error')

// 控制长度
arr.length = index
}
console.log(item, index)
})

// log
// 1 0
// 2 1
// 3 2

原谅我太菜,以前还真不知道有这种骚操作。。。😂