js some,forEach

some 方法只要函数返回值是true,就会终止循环

var arr = [2,3,6,9,10];
let  flag = false;
arr.some((value)=>{
   console.log(value)    // 2
    if (value % 2 == 0) {
        console.log('value-some',value)  //只会执行一次  value-some 2
        return true
    }
})
var arr = [2,3,6,9,10];
let  flag = false;
arr.some((value)=>{
   console.log(value)    // 2 3  6  9  10
    if (value % 2 == 0) {
        console.log('value-some',value)  
      //输出3次  value-some 2   value-some 6   value-some 10
        return false
    }
})

forEach方法 会将循环执行到底,就算中间return false,也不会终止循环,需要加个额外的标志,才能终止程序继续进行。
forEach 函数返回值 是undefined,故不能用forEach 函数返回值当做标志

var arr = [2,3,6,9,10];
let  flag = false; // 本例中,flag 就是额外的标志

function total(){   
    arr.forEach((value)=>{
        console.log(value)  // 2 3  6  9  10
        if (value % 2 == 0) {
            console.log('value',value)  // 2 6 10
            flag = true;
            return false;
        }
        console.log('执行下边的代码吗')
    })


    if(flag){
        return
    }     
    console.log('执行下边的代码吗----外边')  // 这句话就不会执行
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容