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('执行下边的代码吗----外边') // 这句话就不会执行
}
网友评论