編者:李國帥
時間: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;
}
});