forEach只做循环,map循环数组每一项,生成一个新的数组对象,map生成的新的数组对象的长度和原素组一样,新数组的的每一项的内容为原数组循环时每一项的返回值
map确切来说接收三个参数,第一个为当前项,第二个为索引,第三个为原素组
forEach函数和map函数的参数:
callback: 为数组中每个元素执行的函数,该函数接收三个参数,
参数一:当前数组中元素;参数二:索引; 参数三:当前数组。
this:可选,执行会掉时候,this的指向。
//forEach
array.forEach(callback(currentValue, index, array){
//do something
}, this)
//或者
array.forEach(callback(currentValue, index, array){
//do something
})
//map:
var new_array = arr.map(callback[, thisArg])
1、map方法将数组的所有成员依次传入参数函数,然后把每一次的执行结果组成一个新数组返回
上面代码中,numbers数组的所有成员依次执行参数函数,运行结果组成一个新数组返回,原数组没有变化。
2、map方法接受一个函数作为参数。该函数调用时,map方法向它传入三个参数:当前成员、当前位置和数组本身。