JavaScript中遍歷跳出循環(huán)方法總結(jié)
前言
javascript中的遍歷方法有很多,今天,主要總結(jié)一下這些遍歷方法如何跳出循環(huán),歡迎各位大神和同行們指教和修正??
首先,必須要知道的是:
- return必須是使用在函數(shù)里面的
- return有2個(gè)作用,結(jié)束函數(shù)和返回結(jié)果
JS中的遍歷有如下方式可以跳出循環(huán)
1.for方法 跳出循環(huán)
- break 跳出當(dāng)前循環(huán),循環(huán)后面的代碼仍然可以執(zhí)行
- return 可以終止當(dāng)前函數(shù),循環(huán)后面的代碼不可以執(zhí)行
- continue 跳過(guò)當(dāng)次循環(huán),仍然執(zhí)行后續(xù)的循環(huán)
function a(){ var arr = [1,3,5,7,9]; var id = 5; for (var i = 0; i < arr.length; i++) { if(arr[i]=== 1) continue; //跳過(guò)當(dāng)次循環(huán) console.log(arr[i]) if (arr[i] === id) { break; //滿足條件,跳出循環(huán);循環(huán)后面的代碼仍然可以執(zhí)行 } if (arr[i] === 6) { return; //滿足條件,可以終止當(dāng)前函數(shù) } } }
2.forEach方法跳出循環(huán)
- 無(wú)法使用break,continue來(lái)跳出遍歷, 因?yàn)閒oreach是異步執(zhí)行,可能在break之前代碼就已經(jīng)執(zhí)行完了
- forEach()本身無(wú)法跳出循環(huán),必須遍歷所有的數(shù)據(jù)才能結(jié)束
- 通過(guò)拋出異常的方式跳出循環(huán) 實(shí)現(xiàn)break效果
// 在forEach中,無(wú)法用break等函數(shù)在遍歷結(jié)束之前結(jié)束遍歷,如果要提前終止,必須把forEach()方法放在一個(gè)try塊中,并能拋出一個(gè)異常。 var arr = [1,3,5,7,9]; var id = 5; try { arr.forEach(function (curItem, i) { if(curItem === 1) return; console.log(curItem) if (curItem === id) { throw Error(); //滿足條件,跳出循環(huán) } }) } catch (e) { }
- 通過(guò)return跳過(guò)當(dāng)次循環(huán) 實(shí)現(xiàn)continue的效果
arr.forEach(function (curItem, i) { if(curItem === 1) return; console.log(curItem) if (curItem === id) { return; //滿足條件,跳出當(dāng)次循環(huán) // break 語(yǔ)法報(bào)錯(cuò); } })
3. map() 跳出循環(huán)
- map和forEach一樣無(wú)法通過(guò)break跳出循環(huán)。
- map() 和 forEach()的區(qū)別
// 前者不改變?cè)瓟?shù)組的內(nèi)容 // 后者改變?cè)瓟?shù)組的內(nèi)容
4. for of 跳出循環(huán)
- continue 跳出當(dāng)次循環(huán)
for (let i of arr) { if (i === 3) { continue } console.log(i) }
- break 跳出當(dāng)前循環(huán)
for (let i of arr) { if (i === 3) { break } console.log(i) }
- return 可以終止當(dāng)前函數(shù),循環(huán)后面的代碼不可以執(zhí)行
var a=[1,2,3,4]; function b(){ for(var key of a){ if(key=2){ return false }; console.log('哈哈哈')} }; console.log(b()) //false
5. while do while 跳出循環(huán)
- continue 跳出當(dāng)次循環(huán)
let j = 1 while (j < 6) { if (j === 3) { j++ continue } console.log(j) // 1 2 4 5 j++ }
- break 跳出當(dāng)前循環(huán)
var i=0; while (i < 6) { if (i === 3) { i++ break } console.log(i) // 0,1,2 i++ }
- return 可以終止當(dāng)前函數(shù),循環(huán)后面的代碼不可以執(zhí)行
var i=0; while (i < 6) { if (i === 3) { return } console.log(i) i++ }
every 遍歷
- every可以通過(guò)return的返回bool值,控制是否繼續(xù)遍歷。
let arr = [1, 2, 3, 4, 5] arr.every(i => { console.log(i) return true //1,2,3,4,5 }) arr.every(i => { console.log(i) if (i === 3) { return false //1,2,3 } else { return true } })
some 遍歷
- some 可以通過(guò)控制return true來(lái)結(jié)束遍歷。
- 如果沒(méi)有寫(xiě)return,會(huì)遍歷到最后一個(gè)值,默認(rèn)給true關(guān)閉
let arr = [1, 2, 3, 4, 5] arr.some(i => { console.log(i) // 1,2,3,4,5 }) arr.some(i => { console.log(i) if (i === 3) { return true //1,2,3 } }) }
總結(jié)
到此這篇關(guān)于JavaScript中遍歷跳出循環(huán)方法總結(jié)的文章就介紹到這了,更多相關(guān)JS遍歷跳出循環(huán)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- JavaScript跳出循環(huán)的三種方法(break, return, continue)
- js for終止循環(huán) 跳出多層循環(huán)
- javaScript如何跳出多重循環(huán)break、continue
- JS forEach跳出循環(huán)2種實(shí)現(xiàn)方法
- JS跳出循環(huán)的5種方法總結(jié)(return、break、continue、throw等)
- JS中的幾種循環(huán)和跳出方式
- Js跳出兩級(jí)循環(huán)方法代碼實(shí)例
- JS中跳出循環(huán)的示例代碼
- JavaScript跳出循環(huán)的幾種常用方法總結(jié)
相關(guān)文章
JS對(duì)select控件option選項(xiàng)的增刪改查示例代碼
Javascript操作select是表單中比較常見(jiàn)的,大家可以在網(wǎng)上搜索到很多的相關(guān)資料,接下來(lái)為大家詳細(xì)介紹下,JS動(dòng)態(tài)操作select中的各種方法,感興趣的朋友可以參考下2013-10-10JavaScript一文帶你玩轉(zhuǎn)web表單網(wǎng)頁(yè)
表單通常用來(lái)收集網(wǎng)頁(yè)訪問(wèn)者信息,常見(jiàn)的表單比如搜索引擎的搜索框、各網(wǎng)頁(yè)應(yīng)用的注冊(cè)或者登陸界面等,通讀本篇對(duì)大家的學(xué)習(xí)或工作具有一定的價(jià)值,需要的朋友可以參考下2021-10-10Javascript學(xué)習(xí)筆記-詳解in運(yùn)算符
in運(yùn)算符是javascript語(yǔ)言中比較特殊的一個(gè),可以單獨(dú)使用作為判斷運(yùn)算符,也常被用于for...in循環(huán)中遍歷對(duì)象屬性2011-09-09JS文本框追加多個(gè)下拉框的值的簡(jiǎn)單實(shí)例
這篇文章介紹了JS文本框追加多個(gè)下拉框的值的例子,有需要的朋友可以參考一下2013-07-07JS實(shí)現(xiàn)超簡(jiǎn)單的漢字轉(zhuǎn)拼音功能示例
這篇文章主要介紹了JS實(shí)現(xiàn)超簡(jiǎn)單的漢字轉(zhuǎn)拼音功能,結(jié)合實(shí)例形式分析了javascript漢字轉(zhuǎn)換成拼音的函數(shù)定義與使用技巧,需要的朋友可以參考下2016-12-12CSS(js)限制頁(yè)面顯示的文本字符長(zhǎng)度
限制頁(yè)面顯示的字符長(zhǎng)度,一直被眾多網(wǎng)友傾睬,本人也是一fans利用閑暇時(shí)間搜集整理了一些實(shí)用技巧,需要了解的朋友可以參考下2012-12-12