循环遍历数组/对象

1、for循环

  1)常规写法

    

 

 

   2) arr.lengh缓存下来:实际上,缓存后比常规写法效率要低

    

 

 

  3)小技巧:边赋值边判断,第二个分号中是判断的内容,每次循环时会对其进行判断,当i++大于arr的长度时,arr[i++]=underfined 在JS中0 null   underfined '' 都会转换为false,循环停止。

    

 注意:for循环使用break、continue和return都可以退出

  1)break:终止循环,只能用在循环语句中

    

 

 

 

 

 

   2)continue:跳出当前循环。继续下一个循环

   

 

 

   3)return 表达式:用于指定函数返回的值,只能用在函数体中。

    执行return false;语句会终止函数的执行,返回到函数的调用处,即使后面还有其他的语句也

    不再执行。

      

2、for of:ES6推出的用于迭代字符串、数组、类数组对象、map、set等一切可以迭代的结构。

      注意:不能迭代对象

  1)字符串与数组

     

  2)类数组对象 

     

  3)set结构

        

   4)map结构

          

 

 3、for in(ES5):主要用于遍历数组或者对象中的属性,不推荐直接遍历数组,因为遍历的是数组中的索引

        

 

 

 4、forEach():用于遍历数组

  forEach(function(){},thisValue)

    *  function(currentVal,index,arr){ }

      - currentVal:当前遍历的值

      -  index:代表当前的索引值

      -  Arr:可选,当前遍历的对象

    *  thisValue:参数函数的this值,默认为window

  

 

 

 

     注意:存在的问题就是在遍历完所有元素之前不能停止,没有break语句。如果需要强制退出,使用try catch语句,在catch中return

     

 

 

 

 5、map():map()方法返回一个新数组,新数组返回值为原数组元素调用函数处理后的值。(用于对数组的元素进行一些处理)

    和forEach()方法一样,只能用于遍历数组,不能用于对象

   

 6、filter():返回过滤后的数组,不会改变原数组。(用于数组的过滤)

    

 

 7、some():检测数组的元素是否满足指定条件,返回布尔值。不会改变原数组

   

 

 8、every():用于检测数组元素是否都满足条件,返回布尔值,不会改变原数组

  

 9、reduce():

   

 

 

 

 

   

  

posted @ 2019-09-30 17:14  我就是要学习  阅读(6573)  评论(0编辑  收藏  举报