JS020. Array.prototype.map()函式迴圈遍歷跳出
阿新 • • 發佈:2021-08-09
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… 將迴圈丟擲,避免了接下來的記憶體消耗和不必要的效能浪費。