js中Array.forEach跳出循環(huán)的方法實例
forEach()方法
語法:array.forEach(callback(currentvalue,index,arr) ,thisValue)
其中
callback為數組中每個元素執(zhí)行的函數,該函數可接受1-3個參數:
- currentvalue參數表示數組的當前元素項,必須的參數
- index參數表示的當前元素下標,可選參數
- arr參數表示當前元素所屬的數組,可選參數
thisValue表示執(zhí)行回調函數callback()時的this指向??蛇x參數。當不寫時,則默認是指向window全局
示例
var arr = [1, 3, 5, 13, 2];
var res = arr.forEach(function(item,index) {
console.log(`數組第${index+1}個元素是${item}`);
})
console.log(res);//forEach的返回值為undefined,
運行結果:

js中 Array.forEach如何跳出循環(huán)
forEach是不能通過break或者return跳出循環(huán)的,一般跳出循環(huán)的方式為拋出異常:
try {
let array = [1, 2, 3, 4]
array.forEach((item, index) => {
if (item === 3) {
throw new Error('end')//報錯,就跳出循環(huán)
} else {
console.log(item)
}
})
} catch (e) {
}
這種寫法反而很麻煩。
解決方式:
1.使用every替代:
let array = [1, 2, 3, 4]
array.every((item, index) => {
if (item === 3) {
return true
} else {
console.log(item)
}
})
2.自己寫一個😁
//可跳出循環(huán)的數組遍歷
Array.prototype.loop = function(cbk) {
//判斷當前數組是否為空
if (this?.length) {
for (let i = 0; i < this.length; i++) {
let stop = cbk(this[i], i, this)
//判斷是否停止循環(huán)
if (stop) {
break
}
}
}
}
let array = [1, 2, 3, 4]
array.loop ((item, index) => {
if (item === 3) {
return true
} else {
console.log(item)
}
})
總結
到此這篇關于js中Array.forEach跳出循環(huán)的文章就介紹到這了,更多相關js中Array.forEach跳出循環(huán)內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
JavaScript具有類似Lambda表達式編程能力的代碼(改進版)
在之前的一篇博文中我介紹了一種方法可以讓JavaScript具有一種近似于Lambda表達式的編程能力——但是它有一些缺點,其中妨礙它的使用的最主要的一條就是多了一層括號,讓代碼變得難以閱讀。2010-09-09
javascript+iframe 實現無刷新載入整頁的代碼
用iframe也可以實現,但沒有上述做法完美,參見discuz那些網站,如登陸彈出一個層,也是載入的一個頁面,但我發(fā)現狀態(tài)欄左邊出現的是 正在打開about:blank2010-03-03
JavaScript canvas實現動態(tài)點線效果
這篇文章主要為大家詳細介紹了JavaScript canvas實現動態(tài)點線效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-08-08
Ant Design Blazor 組件庫的路由復用多標簽頁功能
在 Ant Design Blazor 組件庫中實現多標簽頁組件的呼聲日益高漲。于是,我利用周末時間,結合 Blazor 內置路由組件實現了基于 Tabs 組件的 ReuseTabs 組件,需要的朋友跟隨小編一起看看吧2021-07-07

