JS跳出循环


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() |不合法 |不合法 |跳出本次循环 |跳出本次循环 |跳出本次循环|


  目录