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