1.for方法跳出循环
使用break跳出循环
1 function getItemById(arr, id) { 2 var item = null; 3 for (var i = 0; i < arr.length; i++) { 4 if (arr[i].id == id) { 5 item = arr[i]; 6 break; 7 } 8 } 9 return item; 10 }
2.forEach方法跳出循环
用抛异常的方式,终止forEach循环。
1 function getItemById(arr, id) { 2 var item = null; 3 try { 4 arr.forEach(function(curItem, i) { 5 if (curItem.id == id) { 6 item = curItem; 7 throw Error(); 8 } 9 }) 10 } catch(e) {} 11 return item; 12 }
注:
- forEach()与普通的for循环不同,不能使用break和continue这两个关键字;实现continue效果可以使用return。
- forEach()本身无法跳出循环,所以,这里使用了抛异常的方法来终止它。
- forEach()内执行的方法为回调函数,里面形成了作用域,不会像for一样影响全局变量。
- forEach()与map、filter、reduce这些高阶函数一脉相承,让我们更易用。