js中斷 forEach 循環(huán)的方法匯總
1、使用 Array.prototype.some() 方法代替
some() 方法會(huì)在找到第一個(gè)符合條件的元素時(shí)停止循環(huán)。
例如:
let array = [1, 2, 3, 4, 5]; array.some(function(element, index, array) { if (element === 3) { console.log("Found 3 at index " + index); return true; } });
上述代碼會(huì)在找到第一個(gè)符合條件的元素(即 3)時(shí)停止循環(huán)。
2、使用 Array.prototype.every() 方法代替
let array = [1, 2, 3, 4, 5]; let stop = array.every(function(element) { console.log(element); if (element === 3) { console.log("Found 3 at index "); return false; } return true; });
上述代碼會(huì)在找到第一個(gè)符合條件的元素(即 3)時(shí)停止循環(huán)。
請(qǐng)注意,該方法找到的元素不會(huì)返回,需要在回調(diào)中自己處理。
3、使用 for循環(huán)代替
let array = [1, 2, 3, 4, 5]; for(let i = 0; i < array.length; i++) { if (array[i] === 3) { console.log("Found 3 at index " + i); break; } }
上述代碼也會(huì)在找到第一個(gè)符合條件的元素(即 3)時(shí)停止循環(huán)。
4、使用 try-catch 結(jié)構(gòu)
可以在 forEach 循環(huán)內(nèi)部使用 throw 語(yǔ)句來(lái)中斷循環(huán),并在外部使用 catch 語(yǔ)句來(lái)捕獲該異常。
例如:
let array = [1, 2, 3, 4, 5]; try { array.forEach(function(element, index, array) { if (element === 3) { console.log("Found 3 at index " + index); throw "StopIteration"; } }); } catch (e) { if (e !== "StopIteration") throw e; }
上述代碼會(huì)在找到第一個(gè)符合條件的元素(即 3)時(shí)停止循環(huán)。
請(qǐng)注意,使用 throw 語(yǔ)句中斷 forEach 循環(huán)可能會(huì)使代碼變得更加復(fù)雜,并且容易出現(xiàn)錯(cuò)誤。因此,如果可能的話,應(yīng)該使用前面提到的 Array.prototype.some() 或 for 循環(huán)來(lái)代替。
5、使用自定義的迭代器函數(shù)
let array = [1, 2, 3, 4, 5]; function forEach(array, callback) { for (let i = 0; i < array.length; i++) { callback(array[i], i, array); if (array[i] === 3) { console.log("Found 3 at index " + i); break; } } } forEach(array, function(element, index, array) { console.log(element); });
上述代碼會(huì)在找到第一個(gè)符合條件的元素(即 3)時(shí)停止循環(huán)。
這種方法雖然不夠簡(jiǎn)潔,但是它可以在不改變?cè)瓉?lái)的forEach函數(shù)的情況下,增加新的功能。
6、使用 Array.prototype.find() 或 Array.prototype.findIndex() 方法代替
find() 方法會(huì)在找到符合條件的第一個(gè)元素后返回該元素,并停止循環(huán)。
例如:
let array = [1, 2, 3, 4, 5]; let found = array.find(function(element) { return element === 3; }); console.log(found);
上述代碼會(huì)在找到第一個(gè)符合條件的元素(即 3)時(shí)停止循環(huán)并返回該元素。
Array.prototype.findIndex() 方法會(huì)在找到符合條件的第一個(gè)元素后返回該元素的索引,并停止循環(huán)。
例如:
let array = [1, 2, 3, 4, 5]; let index = array.findIndex(function(element) { return element === 3; }); console.log(index);
上述代碼會(huì)在找到第一個(gè)符合條件的元素(即 3)時(shí)停止循環(huán)并返回該元素的索引。
使用 Array.prototype.find() 或 Array.prototype.findIndex() 方法可以在 forEach 循環(huán)中找到符合條件的第一個(gè)元素并停止循環(huán)。這兩種方法是在找到符合條件的元素后返回該元素或索引,而不是像 some() 方法或 for 循環(huán)中需要再次返回一個(gè)布爾值或使用 throw 語(yǔ)句來(lái)中斷循環(huán)。
總之,主要方法還是通過(guò)其它方式代替 forEach 循環(huán)的中斷,只有方法4 使用 try-catch 結(jié)構(gòu)是實(shí)際意義上中斷 forEach 循環(huán)。
到此這篇關(guān)于js中斷 forEach 循環(huán)的幾種方法的文章就介紹到這了,更多相關(guān)js中斷 forEach 循環(huán)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 在JavaScript中終止forEach循環(huán)的三種方式
- Js中foreach()用法及使用的坑記錄
- JS 中forEach,for in、for of用法實(shí)例總結(jié)
- JavaScript中forEach和map的使用場(chǎng)景
- JavaScript中forEach和map方法的使用與區(qū)別
- Javascript數(shù)組的?forEach?方法詳細(xì)介紹
- JavaScript中forEach的錯(cuò)誤用法匯總
- 簡(jiǎn)述JS中forEach()、map()、every()、some()和filter()的用法
- JavaScript forEach的幾種用法小結(jié)
相關(guān)文章
十個(gè)JavaScript?lodash中的高頻使用方法整理
本文梳理lodash中那些高頻使用的超究極無(wú)敵好用方法,熟練使用下面的十個(gè)方法能夠讓你的代碼原地起飛,為你的開(kāi)發(fā)之旅極大的減輕心智負(fù)擔(dān),快跟隨小編一起學(xué)習(xí)一下吧2024-01-01arcgis for js實(shí)現(xiàn)地圖截圖、地圖打印功能
這篇文章主要介紹了arcgis for js實(shí)現(xiàn)地圖截圖、地圖打印功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2024-12-12three.js利用gpu選取物體并計(jì)算交點(diǎn)位置的方法示例
這篇文章主要給大家介紹了關(guān)于three.js利用gpu選取物體并計(jì)算交點(diǎn)位置的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用three.js具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11Web層改進(jìn)II-用xmlhttp 無(wú)聲息提交復(fù)雜表單
Web層改進(jìn)II-用xmlhttp 無(wú)聲息提交復(fù)雜表單...2007-01-01JavaScript判斷瀏覽器運(yùn)行環(huán)境的詳細(xì)方法
這篇文章主要給大家介紹了關(guān)于JavaScript判斷瀏覽器運(yùn)行環(huán)境的詳細(xì)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用JavaScript具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06jquery 時(shí)間戳轉(zhuǎn)日期過(guò)程詳解
這篇文章主要介紹了jquery 時(shí)間戳轉(zhuǎn)日期過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10