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… 将循环抛出,避免了接下来的内存消耗和不必要的性能浪费。