for循环/for-in循环
for
/for-in
循环可以使用break
/continue
跳出循环break
是终止当前循环continue
是结束本次循环,后面的循环会继续执行let arr = [1, 2, 3, 4, 5]; for(let i = 0; i < arr.length; i++){ if(i === 2) break; // break或continue console.log(arr[i]); } // break 输出() 1 2 // continue 输出 1 2 4 5 let obj = { name: 'whh', age: '24', sex: 'male' }; for(let key in obj){ if(key === 'age') continue; console.log(key, obj[key]); } // 输出 name whh sex male
forEach循环
利用
return
在特定时机跳出当前循环,后面的循环会继续执行let arr = [1, 2, 3, 4, 5]; arr.forEach(item => { if(item === 2) { return; } console.log(item); }) // 输出 1 3 4 5
利用
try…catch
在特定时机抛出异常达到跳出整个循环的效果let arr = [1, 2, 3, 4, 5], key; try { arr.forEach(item => { if(item === 2) { key = item; // 记录跳出循环时机 throw Error(); } console.log(item); }) } catch(error) { // 跳出循环后要做的操作 ... } console.log('跳出循环时机:' + key); // 结果 1 跳出循环时机:2
汇总
序号 | 方法 | break | continue | return | return true | return false |
---|---|---|---|---|---|---|
1 | for循环 | 成功 | 跳出本次循环 | 不合法 | 不合法 | 不合法 |
2 | Array.forEach() | 不合法 | 不合法 | 跳出本次循环 | 跳出本次循环 | 跳出本次循环 |
3 | for…in | 成功 | 跳出本次循环 | 不合法 | 不合法 | 不合法 |
4 | Array.map() | 不合法 | 不合法 | 跳出本次循环 | 跳出本次循环 | 跳出本次循环 |
5 | Array.some() | 不合法 | 不合法 | 跳出本次循环 | 成功 | 跳出本次循环 |
6 | Array.every() | 不合法 | 不合法 | 成功 | 跳出本次循环 | 成功 |
7 | Array.filter() | 不合法 | 不合法 | 跳出本次循环 | 跳出本次循环 | 跳出本次循环 |