摘要:中如何跳出循環(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 | return | return true | return false | 結(jié)論 |
---|---|---|---|---|---|---|---|
1 | for循環(huán) | 成功 | 跳出本次循環(huán) | 不合法 | 不合法 | 不合法 | √ |
2 | Array.forEach() | 不合法 | 不合法 | 跳出本次循環(huán) | 跳出本次循環(huán) | 跳出本次循環(huán) | × |
3 | for...in | 成功 | 跳出本次循環(huán) | 不合法 | 不合法 | 不合法 | √ |
4 | Array.map() | 不合法 | 不合法 | 跳出本次循環(huán) | 跳出本次循環(huán) | 跳出本次循環(huán) | × |
5 | Array.some() | 不合法 | 不合法 | 跳出本次循環(huán) | 成功 | 跳出本次循環(huán) | √ |
6 | Array.every() | 不合法 | 不合法 | 成功 | 跳出本次循環(huán) | 成功 | √ |
7 | Array.filter() | 不合法 | 不合法 | 跳出本次循環(huán) | 跳出本次循環(huán) | 跳出本次循環(huán) | × |
forEach、map和filter目前我不知有什么辦法停止遍歷,在其他幾種方法中,上表中列出的方法均可實現(xiàn)結(jié)束循環(huán)。1. for循環(huán)
var arr = ["a", "b", "c", "d", "e"]; var show = []; for (var i = 0; i < arr.length; i++) { if (i === 2) { break;// ["a", "b"] 成功跳出循環(huán) // continue;// ["a", "b", "d", "e"] 只能跳出本次循環(huán) // return;// Uncaught SyntaxError: Illegal return statement // return true;// Uncaught SyntaxError: Illegal return statement // return false;// Uncaught SyntaxError: Illegal return statement } show.push(arr[i]); }2. Array.forEach()
var arr = ["a", "b", "c", "d", "e"]; var show = []; arr.forEach((item, index) => { if (index === 2) { // break;// Uncaught SyntaxError: Illegal break statement // continue;// Uncaught SyntaxError: Illegal continue statement: no surrounding iteration statement // return;// ["a", "b", "d", "e"] 只能跳出本次循環(huán) // return true;// ["a", "b", "d", "e"] 只能跳出本次循環(huán) // return false;// ["a", "b", "d", "e"] 只能跳出本次循環(huán) } show.push(item); })3. for...in...
var arr = ["a", "b", "c", "d", "e"]; var show = []; for (var item in arr) { if (item === "2") { break;// ["a", "b"] 跳出循環(huán)成功 // continue;// ["a", "b", "d", "e"] 只能跳出本次循環(huán) // return;// Uncaught SyntaxError: Illegal return statement // return true;// Uncaught SyntaxError: Illegal return statement // return false;// Uncaught SyntaxError: Illegal return statement } show.push(arr[item]); }4. Array.map()
var arr = ["a", "b", "c", "d", "e"]; var show = []; arr.map((item, index) => { if (index === 2) { // break;// Uncaught SyntaxError: Illegal break statement // continue;// Uncaught SyntaxError: Illegal continue statement: no surrounding iteration statement // return;// ["a", "b", "d", "e"] 只能跳出本次循環(huán) // return true;// ["a", "b", "d", "e"] 只能跳出本次循環(huán) // return false;// ["a", "b", "d", "e"] 只能跳出本次循環(huán) } show.push(item); })5. Array.some()
var arr = ["a", "b", "c", "d", "e"]; var show = []; arr.some((item, index) => { if (index === 2) { // break;// Uncaught SyntaxError: Illegal break statement // continue;// Uncaught SyntaxError: Illegal continue statement: no surrounding iteration statement // return;// ["a", "b", "d", "e"] 只能跳出本次循環(huán) return true;// ["a", "b"] 成功跳出循環(huán) // return false;// ["a", "b", "d", "e"] 只能跳出本次循環(huán) } show.push(item); })6. Array.every()
var arr = ["a", "b", "c", "d", "e"]; var show = []; arr.every((item, index) => { if (index === 2) { // break;// Uncaught SyntaxError: Illegal break statement // continue;// Uncaught SyntaxError: Illegal continue statement: no surrounding iteration statement // return;// ["a", "b"] 成功跳出循環(huán) // return true;// ["a", "b", "d", "e"] 只能跳出本次循環(huán) return false;// ["a", "b"] 成功跳出循環(huán) } return show.push(item); })
some()與every()不同,some遍歷中一個為真全部即為真,而every遍歷中全部為真才行。some遍歷中返回true才會退出執(zhí)行,而every則需要返回false才會退出執(zhí)行。7. Array.filter()
var arr = ["a", "b", "c", "d", "e"]; var show = []; arr.filter((item, index) => { if (index === 2) { // break;// Uncaught SyntaxError: Illegal break statement // continue;// Uncaught SyntaxError: Illegal continue statement: no surrounding iteration statement // return;// ["a", "b", "d", "e"] 只能跳出本次循環(huán) // return true;// ["a", "b", "d", "e"] 只能跳出本次循環(huán) return false;// ["a", "b", "d", "e"] 只能跳出本次循環(huán) } show.push(item); })
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/106932.html
摘要:小汪經(jīng)過實踐得出以下用途。空數(shù)組的類型也是,這表示在內(nèi)部,數(shù)組本質(zhì)上只是一種特殊的對象。調(diào)用函數(shù)時,某個參數(shù)未設置任何值,這時就可以傳入,表示該參數(shù)為空。前端還是很有未來的下節(jié)內(nèi)容細數(shù)實用黑科技二。 showImg(https://segmentfault.com/img/remote/1460000016507838); 前言 只有深入學精一門語言,學其他語言才能更好地舉一反三,觸類...
摘要:重新鞏固系列,都是比較基礎的東西,可以進行查漏補缺,很快看完,這是第三篇。其中,部分可以省略條件語句語句例子為,小于但大于,故輸出語句當表達式的值等于值時,執(zhí)行語句,遇到語句則跳出語句,若都沒匹配到值,則執(zhí)行中的語句。重新鞏固JS系列,都是比較基礎的東西,可以進行查漏補缺,很快看完,這是第三篇。 其他JS重新鞏固系列: 重新鞏固JS(一)——JavaScript基本類型 重新鞏固JS(二)...
摘要:主要用于枚舉對象數(shù)組遍歷效率最低的方法。當前數(shù)組元素的值。傳遞給函數(shù)的初始值注意對于空數(shù)組是不會執(zhí)行回調(diào)函數(shù)的。 前言 PS: 2018/04/26 優(yōu)化一下排版,重新梳理一下方法,補充一些信息,刪除JQuery庫用法,只講解Javascript自帶的, for in 語句用于遍歷數(shù)組或者對象的屬性(對數(shù)組或者對象的屬性進行循環(huán)操作)。主要用于枚舉對象, 數(shù)組遍歷效率最低的方法。 va...
摘要:和循環(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),...
摘要:中序遍歷概念中序遍歷指先遍歷節(jié)點的左子樹,再訪問節(jié)點,最后遍歷節(jié)點的右子樹,按照這種規(guī)則不重復地訪問樹中所有節(jié)點的過程。用棧保存經(jīng)過的待訪問的節(jié)點,棧頂節(jié)點表示正在遍歷節(jié)點的左子樹。同時,說明棧頂節(jié)點的左子樹遍歷結(jié)束。 中序遍歷 概念 「中序遍歷」指先遍歷節(jié)點的左子樹,再訪問節(jié)點,最后遍歷節(jié)點的右子樹,按照這種規(guī)則不重復地訪問樹中所有節(jié)點的過程。 思路 showImg(https://...
閱讀 2492·2021-09-28 09:36
閱讀 1486·2021-09-22 15:33
閱讀 3636·2019-08-30 15:44
閱讀 1743·2019-08-29 13:14
閱讀 3132·2019-08-29 11:17
閱讀 1441·2019-08-29 11:03
閱讀 2905·2019-08-26 17:10
閱讀 681·2019-08-26 12:13