1. 程式人生 > 其它 >JS020. Array.prototype.map()函式迴圈遍歷跳出

JS020. Array.prototype.map()函式迴圈遍歷跳出

Array.prototype.map()

map( ) 方法建立一個新陣列*,其結果是該陣列中的 每個元素*是呼叫一次提供的函式後的返回值。[ MDN/ RUNOOB]

執行機制

img-bottom-left可以看出,新陣列的每一次元素遍歷都會執行一個新的函數週期

並且 map 的執行速度經大佬統計在大資料的情況下倍數劣於 for 迴圈

因此當我們遍歷一個很大的陣列,我們很可能就必須因此放棄這一函式

然而事實上,我們可以通過 try…catch…來使用 throw 丟擲一個自定義異常

以終止 map 的遍歷週期,以將它再次加入我們的應用儲備

跳出程式碼

let arr = [1, 2, 3……]

try { arr.map((item, index) => { if(item === 2) { throw 'Custom Exception.' } else { return 'pass' } }) } catch(e) { console.log(e) }

執行結果

當迴圈到 arr[2] 時,滿足 ' item === 3 ' 的條件,通過 throw 定義自定義異常,再通過 try…catch… 將迴圈丟擲,避免了接下來的記憶體消耗和不必要的效能浪費。

- END -