摘要:前文沒怎么理解的方法的童鞋使用時很容易遇到一個問題就是,當你想要跳出這個循環(huán)時,發(fā)現(xiàn)是不起作用的。這里可用于跳出循環(huán)。
前文
沒怎么理解JavaScript的forEach方法的童鞋使用forEach時很容易遇到一個問題就是,當你想要跳出這個循環(huán)時,發(fā)現(xiàn)return、break是不起作用的。下面我們來分析一下原因以及解決方法。
正文首先我們要知道的是forEach方法的機制是對數組的每個有效元素執(zhí)行一次callback函數,然后return、break等只作用于一個函數,也就造成了無法跳出forEach循環(huán)的問題,而是只能跳過當前函數的執(zhí)行。
解決方案 曲線救國(SegmentFault)通過使用拋出異常的方式可以中止。
function foo(arr ,item){ var BreakException= {}; try { arr.forEach(function(i) { if(i === item) throw BreakException; console.log(i); }); } catch(e) { if (e!==BreakException) throw e; } }Array.some&Array.every
正常的使用環(huán)境:如果是測試一個數組里的元素是否符合某條件,且需要返回一個布爾值則應該使用這兩個方法。這里可用于跳出循環(huán)。
function foo(arr ,item){ arr.some(function(i) { if(i === item) return true; console.log(i); }); }
function foo(arr ,item){ arr.every(function(i) { if(i === item) return false; console.log(i); }); }循規(guī)蹈矩
如果你需要這樣,使用forEach()方法是錯誤的,你可以用一個簡單的循環(huán)作為替代。—— MDN
對于多重for循環(huán),我們跳出循環(huán)需要特殊處理一下:
xh: //首先將循環(huán)命名 for(var i=0;i<10;i++){ for(var j=0;j<5;j++){ if(i==3 && j==4){ break xh; //跳出循環(huán)xh } } }參考
https://segmentfault.com/q/10...
https://developer.mozilla.org...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/93353.html
摘要:中如何跳出循環(huán)結束遍歷直接拋結論,下表是中常用的實現(xiàn)循環(huán)遍歷的方法的跳出結束遍歷的辦法,經過測試后的總結。遍歷中返回才會退出執(zhí)行,而則需要返回才會退出執(zhí)行。 JavaScript中如何跳出循環(huán)/結束遍歷 直接拋結論,下表是JS中常用的實現(xiàn)循環(huán)遍歷的方法的跳出/結束遍歷的辦法,經過測試后的總結。可能各位大佬還有其他的辦法,我在此表示大佬NB。 序號 方法 break continue...
摘要:解決方案用一個臨時變量存儲結果,當條件成立相同時將結果改為這樣雖然能獲得正確的返回值,但卻無法阻止的循環(huán)想來應該是用在歷遍數組元素來做一些操作,像這樣的應該用循環(huán)比較好一些 在寫一個比較數組對象中是否存在一個對象,存在返回true,失敗返回false.在return時,發(fā)現(xiàn)并沒有退出方法,自己測試了一下. 首先先寫一個數組對象,然后用angularjs的forEach方法循環(huán)比較,當存...
摘要:利用捕獲錯誤,在里滿足條件時拋出錯誤滿足條件拋出錯誤,立即跳出循環(huán)語句允許我們創(chuàng)建自定義錯誤。直接是捕獲不到的。 //利用 try catch 捕獲錯誤,在forEach里滿足條件時拋出錯誤 try{ arr.forEach(item => { if(true){ //滿足條件拋出錯誤,立即跳出循環(huán) //throw 語句允許我們創(chuàng)建自定...
摘要:是中遍歷數組的方法,大部分人常用循環(huán)來遍歷數組,現(xiàn)在我們來看一下的用法。兼容性和的類型都有的函數。 forEach是javascript中遍歷數組的方法,大部分人常用for()循環(huán)來遍歷數組,現(xiàn)在我們來看一下forEach的用法。 兼容性 Firefox 和Chrome 的Array 類型都有forEach的函數。使用如下: var arryAll = []; arryAll...
摘要:和循環(huán)遍歷器意義為四種數據集合,提供統(tǒng)一的接口機制來處理所有不同的數據結構。調用函數返回一個遍歷器對象,代表函數的內部指針。以后,每次調用遍歷器對象的方法,就會返回一個有著和兩個屬性的對象。 Iterator 和 for...of 循環(huán) Iterator(遍歷器)意義 為Array、Object、Map、Set四種數據集合,提供統(tǒng)一的接口機制來處理所有不同的數據結構 。 任何數據結構,...
閱讀 1039·2021-11-18 13:23
閱讀 746·2021-11-08 13:16
閱讀 855·2021-10-11 10:58
閱讀 3510·2021-09-22 15:26
閱讀 1732·2021-09-08 10:42
閱讀 1807·2021-09-04 16:45
閱讀 1733·2019-08-30 15:54
閱讀 2564·2019-08-30 13:45