forEach方法如何跳出循环?
1、for方法跳出循环
break跳出循环 continue跳出当次循环
//for方法 for方法跳出循环-----break跳出循环 continue跳出当次循环
handClickFor(){
let arr=[1,3,5,7,9];
let id = 5;
for(var i=0;i<arr.length;i++){
if(arr[i]===1)continue;
console.log(arr[i]) //3、5
if(arr[i]===id){
break;
}
}
}
forEach方法为什么不能使用continue,break
// forEach方法使用continue,break是会报错
// arr.forEach(item => {
// if(item===1)continue;
// console.log(item)
// if(item===id){
// break;
// }
// })
首先,我们先理解下,为什么for方法可以continue,break,而forEach方法却报错;
因为for方法是语句,而forEach方法是函数
arr.forEach(function(item){
})
for和forEach的区别
1.forEach()不能使用break和continue这两个关键字,它实现break效果可以通过抛出异常的方式,实现continue的效果可以直接使用return
2.forEach的优势就是,它传入一个函数,因此形成了一个作用域,它内部所定义的变量不会像for循环一样污染全局变量
3.forEach()本身无法跳出循环,必须遍历所有的数据才能结束
forEach跳出循环方法
try catch
通过抛出异常的方式跳出循环 通过return跳过当次循环
handClickTryCatch(){
let arr = ['1','2','3','4'];
try {
arr.forEach((item) => {
if (item === '2') {
throw new Error("退出循环");
}
console.log("foreach",item);
});
} catch (e) {
if (e.message === "退出循环") {
console.log("结束了");
return this.$message.error('结束了');
} else {
console.log(e.message);
}
}
}
some()方法
some() 方法用于检测数组中的元素是否满足指定条件(函数提供)。
some() 方法会依次执行数组的每个元素:
如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
如果没有满足条件的元素,则返回false。
注意: some() 不会对空数组进行检测。
注意: some() 不会改变原始数组。
let arr = ['1','2','3','4'];
if(arr.some((number) => {return number == 4})) {
//代码块
console.log('满足条件进来了')
}
every()方法
与some()方法相反
every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。
every() 方法使用指定函数检测数组中的所有元素:
如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
如果所有元素都满足条件,则返回 true。
注意: every() 不会对空数组进行检测。
注意: every() 不会改变原始数组。
let arr = [1000, 2000, 3000]
let flag = arr.every(function (a, b, c) {
console.log(a + "===" + b + "====" + c) //1000===0====1000,2000,3000
return a > 2000;//数组中的每个元素的值都要大于2000的情况,最后才返回true
})
console.log(flag) //false