三种遍历的方法(map和forEach的区别)

一. for循环

arr[index]可以改变原数组

三种遍历的方法(map和forEach的区别)

 

二. forEach方法

  1. forEach方法的返回值是一个undefined;

三种遍历的方法(map和forEach的区别)

  2. 在循环体内改变item的值不会影响原数组,而是只在循环体内生效;

三种遍历的方法(map和forEach的区别)

 

   3. 而使用索引值操作arr[index]将会改变原数组;

三种遍历的方法(map和forEach的区别)

 

 

  4. 在循环体内return数值没有产生什么影响。

三种遍历的方法(map和forEach的区别)

 

  5. forEach()允许callback更改原始数组的元素。

 

三. map方法
  1. map方法的返回值是一个数组,该数组中元素的值来自遍历原数组时每一次的返回值,若循环体内没有return则元素都为undefined;

三种遍历的方法(map和forEach的区别)

 

 

  2. 在循环体内改变item的值不会影响原数组,而是只在循环体内生效;

三种遍历的方法(map和forEach的区别)

  3. 而使用索引值操作arr[index]将会改变原数组;

 

 三种遍历的方法(map和forEach的区别)

 

   4. 在循环体内return的数值将组成新数组并返回给a,对原数组没有影响。

三种遍历的方法(map和forEach的区别)

 


 

总结:

map和forEach相同之处:

  遍历时改变item不能影响原数组;

  使用索引值操作arr[index]会改变原数组;

不同之处:

  forEach()允许callback更改原始数组的元素。map()返回新的数组

 

 


 

 

 本文用到的截图工具:Snipaste

三种遍历的方法(map和forEach的区别)

 

 

用到的调试工具:谷歌浏览器f12的sources的snippets

三种遍历的方法(map和forEach的区别)

 

 

 

 

参考:https://blog.fundebug.com/2018/02/05/map_vs_foreach/

 

上一篇:forEach从老都不会改变原数组,他就是一个for循环的简写


下一篇:js数组循环的时间复杂度