0
点赞
收藏
分享

微信扫一扫

js中array遍历查询forEach使用try...throw-catch或者every使用return跳出循环


编者:李国帅


时间:2021 

问题描述:

使用js的时候经常用到查询数据中指定数据的情况,而数据的forEach() 方法比较常见,它将数组的每个元素传递给回调函数,在回调函数中进行操作。

和其他的循环不同,不能使用break和return跳出循环,所以一般不用它来做查询,可以用它来进行数据修改。

如果对一个大数组使用foreach函数,已经找了数据还要进行后面的循环显然是不划算的,低效率的。因此非要使用forEach() 进行查询,而且查询后就需要退出,这是可以使用try...throw-catch。

跳出forEach() :

forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。

try{

this.array1.forEach(element => {

if(element.name == "标记1"){

this.temp.Id = element.id;

//break; 错误

//return; 不能跳出foreach

throw new Error("ddddd")

}

});

}catch(e){

if(e.message !="ddddd")throw e;

}

使用every实现 break

every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。

every() 方法使用指定函数检测数组中的所有元素:

如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。

如果所有元素都满足条件,则返回 true。

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

var num = 3;

arr.every(function(v){

if(v == num) {

return false;;//返回false表示break,返回true表示continue

}else{

console.log(v);

return true;

}

});

参考:

​​https://www.runoob.com/jsref/jsref-foreach.html​​

​​https://www.runoob.com/jsref/jsref-every.html​​

举报

相关推荐

0 条评论