天天看點

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;

    }

});      

繼續閱讀