共同点:
、都是循环遍历数组中的每一项。
、forEach()和map()里面每一次执行匿名函数都支持3个参数:数组中的当前项item,当前项的索引index,原始数组input。
、匿名函数中的this都是指Window。
、只能遍历数组。
不同点:
1.forEach():
没有返回值,即返回值为undefined
理论上这个方法是没有返回值的,仅仅是遍历数组中的每一项,不对原来数组进行修改;但是可以自己通过数组的索引来修改原来的数组,或当数组项为对象时修改对象中的值;
2.map():
有返回值,可以return 出来。
区别:map的回调函数中支持
return
返回值;
return
的是啥,相当于把数组中的这一项变为啥(并不影响原来的数组,只是相当于把原数组克隆一份,把克隆的这一份的数组中的对应项改变了);
1、forEach()返回值是undefined,不可以链式调用。
2、map()返回一个新数组,原数组不会改变。