map()
返回值:一个新数组,每个元素都是回调函数的结果
map()方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数。
var array = [1, 4, 5, 2, 8]
var array1 = array.map(item =>{
return item * item
})
console.log(array1) //array1 = [1, 16, 25, 4, 64]
forEach()
返回值:undefined
forEach()方法对数组的每个元素执行一次提供的函数,只是对每个元素会进行操作。不是必须有返回值。
var array2 = ['a', 'b', 'c', 'd']
array2.forEach(function(element){
console.log(element) // 依次打印出来 a b c d
})
二者相同点:
- 都是循环遍历数组中的每一项
- 在遍历中执行匿名函数都可以接收三个参数,分别是:数组中的每一项、数组的索引值、原数组
- 匿名函数中的this都指向window
二者不同点:
- 返回值不同,map()方法返回一个新数组,且不会改变原数组。不会对空数组进行检测。
- forEach(),只是注重对每个元素的处理,并没有强制返回什么,默认是undefined。不会对空数组进行检测。