成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

forEach方法跳出循環(huán)

SolomonXie / 1604人閱讀

摘要:前文沒怎么理解的方法的童鞋使用時很容易遇到一個問題就是,當你想要跳出這個循環(huán)時,發(fā)現(xiàn)是不起作用的。這里可用于跳出循環(huán)。

前文

沒怎么理解JavaScript的forEach方法的童鞋使用forEach時很容易遇到一個問題就是,當你想要跳出這個循環(huán)時,發(fā)現(xiàn)return、break是不起作用的。下面我們來分析一下原因以及解決方法。

正文

首先我們要知道的是forEach方法的機制是對數(shù)組的每個有效元素執(zhí)行一次callback函數(shù),然后returnbreak等只作用于一個函數(shù),也就造成了無法跳出forEach循環(huán)的問題,而是只能跳過當前函數(shù)的執(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)境:如果是測試一個數(shù)組里的元素是否符合某條件,且需要返回一個布爾值則應(yīng)該使用這兩個方法。這里可用于跳出循環(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...

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/93353.html

相關(guān)文章

  • JavaScript中如何跳出循環(huán)/結(jié)束遍歷

    摘要:中如何跳出循環(huán)結(jié)束遍歷直接拋結(jié)論,下表是中常用的實現(xiàn)循環(huán)遍歷的方法的跳出結(jié)束遍歷的辦法,經(jīng)過測試后的總結(jié)。遍歷中返回才會退出執(zhí)行,而則需要返回才會退出執(zhí)行。 JavaScript中如何跳出循環(huán)/結(jié)束遍歷 直接拋結(jié)論,下表是JS中常用的實現(xiàn)循環(huán)遍歷的方法的跳出/結(jié)束遍歷的辦法,經(jīng)過測試后的總結(jié)??赡芨魑淮罄羞€有其他的辦法,我在此表示大佬NB。 序號 方法 break continue...

    Simon 評論0 收藏0
  • 使用angularjs.foreach時return的問題

    摘要:解決方案用一個臨時變量存儲結(jié)果,當條件成立相同時將結(jié)果改為這樣雖然能獲得正確的返回值,但卻無法阻止的循環(huán)想來應(yīng)該是用在歷遍數(shù)組元素來做一些操作,像這樣的應(yīng)該用循環(huán)比較好一些 在寫一個比較數(shù)組對象中是否存在一個對象,存在返回true,失敗返回false.在return時,發(fā)現(xiàn)并沒有退出方法,自己測試了一下. 首先先寫一個數(shù)組對象,然后用angularjs的forEach方法循環(huán)比較,當存...

    Youngdze 評論0 收藏0
  • 利用try catch跳出forEach循環(huán)

    摘要:利用捕獲錯誤,在里滿足條件時拋出錯誤滿足條件拋出錯誤,立即跳出循環(huán)語句允許我們創(chuàng)建自定義錯誤。直接是捕獲不到的。 //利用 try catch 捕獲錯誤,在forEach里滿足條件時拋出錯誤 try{ arr.forEach(item => { if(true){ //滿足條件拋出錯誤,立即跳出循環(huán) //throw 語句允許我們創(chuàng)建自定...

    Hanks10100 評論0 收藏0
  • Javascript 數(shù)組循環(huán)遍歷之forEach

    摘要:是中遍歷數(shù)組的方法,大部分人常用循環(huán)來遍歷數(shù)組,現(xiàn)在我們來看一下的用法。兼容性和的類型都有的函數(shù)。 forEach是javascript中遍歷數(shù)組的方法,大部分人常用for()循環(huán)來遍歷數(shù)組,現(xiàn)在我們來看一下forEach的用法。 兼容性 Firefox 和Chrome 的Array 類型都有forEach的函數(shù)。使用如下: var arryAll = []; arryAll...

    nicercode 評論0 收藏0
  • Iterator 和 for...of 循環(huán)

    摘要:和循環(huán)遍歷器意義為四種數(shù)據(jù)集合,提供統(tǒng)一的接口機制來處理所有不同的數(shù)據(jù)結(jié)構(gòu)。調(diào)用函數(shù)返回一個遍歷器對象,代表函數(shù)的內(nèi)部指針。以后,每次調(diào)用遍歷器對象的方法,就會返回一個有著和兩個屬性的對象。 Iterator 和 for...of 循環(huán) Iterator(遍歷器)意義 為Array、Object、Map、Set四種數(shù)據(jù)集合,提供統(tǒng)一的接口機制來處理所有不同的數(shù)據(jù)結(jié)構(gòu) 。 任何數(shù)據(jù)結(jié)構(gòu),...

    Drinkey 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<