相同点
- 都是循环遍历数组中的每一项
- forEach和map方法里每次执行匿名函数都支持3个参数,参数分别是item(当前每一项),index(索引值),arr(原数组)
- 匿名函数中的this都是指向window
- 只能遍历数组
- 都不会改变原数组
不同点
map方法
- map方法返回一个新数组,新数组中的元素为原始数组调用函数处理后的值
- map方法不会对空数组进行检测,map方法不会改变原始数组
forEach方法
- forEach方法用来调用数组的每个元素,将元素传给回调函数
- forEach对于空数组不会调用回调函数的
- 无论arr是不是空数组,forEach返回的都是undefined,这个方法只是将数组中的每一项作为callback的参数执行一次