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

  目录