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