forEach 和 map
区别
forEach 执行后返回 undefined
map 执行后返回新数组
共同点
只能遍历数组并参数都一样
不改变原函数(引用类型除外)
无法中断循环;return 只是结束本地循环,进入下一次循环
break 或 continue 都将会报错
F1、使用抛出异常来中断 forEach/map
try{ [1,2,3,4,5,6].forEach((val, index)=> { console.log(val); if(val === 3) { console.log('满足条件后的操作'); throw new Error(); } console.log('满足条件后不再执行', val) }) }catch(e) { console.log('可以不处理'); } console.log('继续执行');
F2、使用别的循环代替
使用传统 for 循环
var arr = [1,2,3,4,5,6];
for(var i = 0; i < arr.length; i++) {
console.log(arr[i]);
if(arr[i]===3) {
console.log('满足条件后的操作');
break;
}
}
使用数组 every/some 循环
var arr = [1,2,3,4,5,6];
arr.every((e)=>{
console.log(e);
if(e === 3) {
console.log('满足条件后的操作');
return false;
}
return true;
})
arr.some((e)=>{
console.log(e);
if(e === 3) {
console.log('满足条件后的操作');
return true;
}
return false;
})