数组 | map和forEach的区别

forEach

forEach方法:针对每一个元素执行提供的函数,没有返回值,直接修改原数组

1
2
3
4
let arr = [1,2,3];
arr.forEach((item, index, array) => {
// 执行某些操作
})

map

map方法:返回一个数组,其中数组的每一项都是对原始数组中同样位置的元素运行传入函数而返回的结果,并且仅对每一项已分配值得索引调用

1
2
3
let arr = [1,2,3];
let newArr = arr.map((item, index, array) => item*2);
console.log(newArr); // [2,4,6]

适用场景

  • map方法适用于创建一个与原数组元素一一对应的数组,map方法还可以进一步结合filterreduce
  • forEach方法适用于并不打算改变数据,而是想用数组的元素做一下操作的时候,比如打印,存入其他数组等