前言
数组的forEach应该是我们平常使用最多的数组方法,它可以很好的代替for循环来实现我们的需求。forEach的使用想必大家都很熟悉了,下面我们就来介绍一下关于forEach大家可能平常不太在意的点。
一、forEach可以改变原数组吗?
直接用代码进行解释:如果输出的arr是[2, 3, 4, 5],则说明可以改变原数组。
const arr = [1, 2, 3, 4];
arr.forEach((item,idx) => {
item += 1
})
console.log(arr);
结果打印的还是 [1, 2, 3, 4],说明当我们对item进行操作的时候并不会影响到原数组。
如果想在forEach里面修改原数组,我们只能通过数组的索引进行修改。例如:arr[idx] = 5
二、怎样终止forEach?
当我们使用for循环时,满足某种条件我们可以使用return、break
去终止后续的循环。
使用return (只能中断本次循环)
输出结果:return 1 return 3 return 4
const arr = [1, 2, 3, 4];
arr.forEach(item => {
if(item === 2) return;
console.log("return", item);
})
使用breack (报错)
const arr = [1, 2, 3, 4];
arr.forEach(item => {
if(item === 2) break;
console.log("return", item);
})
使用try...catch...(成功终止后续循环)
输出结果:return 1 哈哈
try {
arr.forEach(item => {
if(item === 2) throw('哈哈')
console.log("return",item);
})
} catch(err){
console.log(err);
}