前端面试JS—map 和 forEach 的区别

目录

相同点:

不同点:


相同点:

  • 都是循环遍历数组中的每一项(接收一个函数作为参数,并对每个数组元素执行一次)
  • 每次执行匿名函数都支持三个参数:(三个参数分别为item(当前每一项),index(索引值), arr(原数组)
  • 匿名函数中的this都是指向window
  • 只能遍历数组

不同点:

  1. 返回值不同: forEach() 方法返回 undefined,而 map() 返回一个包含转换后元素的新数组。map()会分配内存空间存储新数组并返回,forEach()不会返回数据。
  2. forEach()允许callback更改原始数组的元素。map()返回新的数组。
  3. map() 是可链接的。这意味着你可以在对数组执行 map() 方法后附加reduce(),sort(),filter() 等,但是forEach() 不能,因为你可能猜到,它返回undefined 

你可能感兴趣的:(前端,前端面试,面试,算法,数据结构)