注册会员
×

已有账号? 请点击

使用其他方式登录

js中for/for in/each/for each循环数组或对象跳出终止

发布2021-04-28 浏览45次

详情内容

在js里经常用的循环,比如循环数组或对象,但经常会遇到在循环中如何跳出本次循环或要终止循环。下面给大家总结下常用的循环for/for in/each/for each/some()/every().

1.for循环中,break可跳出循环。continue跳过本次循环,执行下一次循环 。

let arr1 = [1, 3, 5, 7, 9]
for (let i = 0; i < arr1.length; i++) {
  if (i === 1) {
    break // 跳出循环
  }
  console.log(arr1[i]) // 1
}
for (let i = 0; i < arr1.length; i++) {
  if (i === 2) {
    continue // 跳过本次循环,继续下一个循环
  }
  console.log(arr1[i]) // 1 5 7 9
}

同理:for in循环一个对象时也是适合break和continue 

let obj = {
  name: 'Anny',
  age: 14,
  address: '宁波市'
}
for (let key in obj) {
  if (key === 'age') {
    break // 当key等于age时就会跳出整个循环
  }
  console.log(key) // name
}
console.warn('-------')
for (let key in obj) {
  if (key === 'age') {
    continue // 当key等于age时,就会跳过此次循环,进入下一次循环
  }
  console.log(key) // name address
}

forEach可以循环数组或对象,但正常下不能终止循环,除非加上try catch

/**
 * return在forEach中可以用来跳过本次循环
 */
let arr1 = [1, 3, 5, 7, 9]
arr1.forEach((v, i) => {
    if (i === 2) {
        return  // i = 2时,跳过本次循环,进入下一个
    }
    console.log(v) // 1 3 7 9
})

//如果需要终止forEach,
try {
    // 执行到第3次,结束循环
    arr1.forEach(function(item,index){
        if (item == 3) {
            throw new Error("End");
        }
        console.log(item); // 1,3
    });
} catch(e) {
    if(e.message!="End") throw e;
}

js中every()和some()的用法

every()与some()方法都是JS中数组的迭代方法。every()和some()都会对数组中的每一项运行给定函数,对every()来说,如果该函数对每一项返回true,则返回true;而some()的话,对任一项返回true,则返回true。

var arr = [ 1, 2, 3, 4, 5, 6 ];  

console.log("test every() with &&");
console.log( arr.every( function( item, index, array ){  
  console.log( 'item=' + item + ',index='+index+',array='+array );  
  return item > 3;  
}));

console.log('\ntest some() with ||');
console.log( arr.some( function( item, index, array ){  
  console.log( 'item=' + item + ',index='+index+',array='+array );  
  return item > 3;  
}));

结果如下

test every() with &&
item=1,index=0,array=1,2,3,4,5,6
false

test some() with ||
item=1,index=0,array=1,2,3,4,5,6
item=2,index=1,array=1,2,3,4,5,6
item=3,index=2,array=1,2,3,4,5,6
item=4,index=3,array=1,2,3,4,5,6
true


点击QQ咨询
开通会员
返回顶部
×
  • 微信支付
  • 支付宝付款
微信扫码支付
微信扫码支付
请使用微信描二维码支付
×

提示信息