数组中的forEach和map的区别
-
1.基本定义
map
- 创建一个新数组,使用一个给出的函数遍历处理原数组的每个值,由所有处理得到值组成的新数组就是返回值
forEach
- forEach是数组中的遍历方法,会使用一个给出的函数遍历数组中的值,并不会返回一个新数组
-
2.两者区别
- map返回其原始数组的新数组,但是forEach则不会
- forEach会改变原始数组
- forEach的返回值的undefined、map返回一个新数组
-
3.相同点
-
只能遍历数组
-
map和forEach除了接收一个callback函数的参数外,还可以接受第二个参数,第二个参数表示执行callback函数时使用的this值(在不适用箭头函数的情况下有效)
-
let arr = [1, 5, 8, 96, 9, 7]
newArr = arr.map(v => (v * 2))
console.log(newArr);//[2, 10, 16, 192, 18, 14]
newArr2 = arr.forEach(v => (v * 2))
console.log(newArr2);//undefined