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;
})

 

作者 admin

百度广告效果展示