1、使用 Array.prototype.some() 方法代替 some() 方法會在找到第一個符合條件的元素時停止迴圈。 例如: let array = [1, 2, 3, 4, 5]; array.some(function(element, index, array) { if (eleme ...
1、使用 Array.prototype.some() 方法代替
some() 方法會在找到第一個符合條件的元素時停止迴圈。
例如:
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;
}
});
上述代碼會在找到第一個符合條件的元素(即 3)時停止迴圈。
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;
});
上述代碼會在找到第一個符合條件的元素(即 3)時停止迴圈。
請註意,該方法找到的元素不會返回,需要在回調中自己處理。
3、使用 for迴圈代替
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;
}
}
上述代碼也會在找到第一個符合條件的元素(即 3)時停止迴圈。
4、使用 try-catch 結構
可以在 forEach 迴圈內部使用 throw 語句來中斷迴圈,併在外部使用 catch 語句來捕獲該異常。
例如:
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;
}
上述代碼會在找到第一個符合條件的元素(即 3)時停止迴圈。
請註意,使用 throw 語句中斷 forEach 迴圈可能會使代碼變得更加複雜,並且容易出現錯誤。因此,如果可能的話,應該使用前面提到的 Array.prototype.some() 或 for 迴圈來代替。
5、使用自定義的迭代器函數
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);
});
上述代碼會在找到第一個符合條件的元素(即 3)時停止迴圈。
這種方法雖然不夠簡潔,但是它可以在不改變原來的forEach函數的情況下,增加新的功能。
6、使用 Array.prototype.find() 或 Array.prototype.findIndex() 方法代替
find() 方法會在找到符合條件的第一個元素後返回該元素,並停止迴圈。
例如:
let array = [1, 2, 3, 4, 5];
let found = array.find(function(element) {
return element === 3;
});
console.log(found);
上述代碼會在找到第一個符合條件的元素(即 3)時停止迴圈並返回該元素。
Array.prototype.findIndex() 方法會在找到符合條件的第一個元素後返回該元素的索引,並停止迴圈。
例如:
let array = [1, 2, 3, 4, 5];
let index = array.findIndex(function(element) {
return element === 3;
});
console.log(index);
上述代碼會在找到第一個符合條件的元素(即 3)時停止迴圈並返回該元素的索引。
使用 Array.prototype.find() 或 Array.prototype.findIndex() 方法可以在 forEach 迴圈中找到符合條件的第一個元素並停止迴圈。這兩種方法是在找到符合條件的元素後返回該元素或索引,而不是像 some() 方法或 for 迴圈中需要再次返回一個布爾值或使用 throw 語句來中斷迴圈。
總之,主要方法還是通過其它方式代替 forEach 迴圈的中斷,只有方法4 使用 try-catch 結構是實際意義上中斷 forEach 迴圈。
-
如何實現在react現有項目中嵌入Blazor? 目前官方只提供了angular和react倆種示例所以本教程只將react教程 思路講解: 首先在現有react項目中我們可能某些組件是在Blazor中完成,但是我們沒辦法找到怎麼在react中輕量級使用blazor組件,可能會有人會使用iframe ...
-
字元格式設置是指用戶對字元的屏幕顯示和列印輸出形式的設定。Word文檔中的字元格式有:字體、字型大小、字體顏色、高亮顏色、邊框、下劃線、斜體、陰影字、著重號等等。帶格式的文本可以突出內容重點,引起讀者註意。應用字元格式可以使簡單的文檔變得比只使用純文本更具吸引力。本文將為您介紹一種高效便捷的方法,通過編 ...
-
這周收到兩片基於LGT8F328P LQFP32的Arduino Mini EVB, 機器上沒有 Arduino 環境需要新安裝, 正好感受一下新出的 Arduino IDE 2.x, 記錄一下 Ubuntu 20.04/22.04 下安裝 Arduino IDE 2.x 的過程. ...
-
最近幾天用Python寫了個介面後臺服務,把它部在了伺服器的300埠上。之後,我又要把一個二級功能變數名稱解析到該伺服器的300埠上,此時就要用到NGINX了。因為之前對NGINX的使用並不熟悉,特此記錄下來,方便回顧。用了該方法,就能為伺服器上的多個不同介面服務綁定不同的功能變數名稱了,這也就是把多個功能變數名稱解析 ...
-
打算整理彙編語言與介面微機這方面的學習記錄。 參考資料 西電《微機原理與系統設計》周佳社 西交《微機原理與介面技術》 課本《彙編語言與介面技術》王讓定 小甲魚《彙編語言》 1. 介紹 2022年春學習了MIPS視角下的電腦體繫結構與組成原理,同年夏自學了操作系統(科普級別的瞭解),彙編語言是學習操 ...
-
使用子查詢 子查詢 查詢(query) 任何SQL語句都是查詢。但此術語一般指SELECT語句。 SQL還允許創建子查詢(subquery),即嵌套在其他查詢中的查詢。 利用子查詢進行過濾 SELECT cust_id FROM orders WHERE order_num IN (SELECT o ...
-
比較簡單,只是模擬彩票出數字的過程,不計算單一數字的出現概率。 傳統上來說,每次彩票出號的概率都是獨立事件,單純的在可選數字內隨機實現即可。 本文探索的是實現簡單的預測分析,包含歷史開獎結果的連續事件。 舉例說明:(模擬三個數字,數字區域1-10) 第一次開獎 1,2,3 第二次預測 [4-10] ...
-
前言 在公司年會期間我做了個抽獎小項目,我把它分享出來,有用得著的可以看下。 瀏覽鏈接:http://xisite.top/original/luck-draw/index.html 項目鏈接:https://gitee.com/xi1213/luck-draw (歡迎star!) 項目截圖: 實現 ...