数组中forEach和map的区别

405 阅读1分钟

数组中forEach和map的区别

forEach和map的相同点

相同点:

  1. 都是循环遍历数组的每一项
  2. forEach和map方法里每次执行匿名函数都支持三个参数,它们分别是item(当前每一项),index(索引值),arr(原数组)。
  3. 匿名函数中的this都是指向window,所以它们只能遍历对象,都不能改变原数组。

区别:

map方法

  1. map方法返回一个新的数组,数组中的元素为原始数组调用函数处理后的值。
  2. map方法不会对空数组进行检测,map方法不会改变原始数组。
  3. 若arr为空数组,则map方法返回的也是一个空数组。

forEach方法

  1. forEach方法用来调用数组的每个元素,将元素传给回调函数。
  2. forEach对于空数组是不会调用回调函数的。
  3. 无论arr是不是空数组,forEach返回的都是undefined。这个方法只是将数组中的每一项作为callback的参数调用一次。