美文网首页
5-1数组热闹的循环

5-1数组热闹的循环

作者: 谷子多 | 来源:发表于2018-04-03 17:30 被阅读0次

    注意
    1、以下5个方法的参数都一样,第一个是回调函数,第二个参数是改this指向。
    2、用箭头函数的语法要注意一下:this指向的是当前定义函数所在的对象!!!

    一、 arr.forEach(),代替普通for循环,形式更简单

    和for循环区别 :

    • 1.在固定长度或长度不需要计算的时候for循环效率高于foreach.
    • 2.在不确定长度,或计算长度有性能损耗的时候,用foreach比较方便.
    • 3.并且foreach的时候会锁定集合中的对象.期间不能修改.
    • 4.for 循环每次循环会调用 GetCount() 来比较长度. 而 foreach 不考虑长度,只调用一次GetList().
      let arr = ['苹果','香蕉','橘子'];
      arr.forEach(function(val,index){
        console.log(val,index) //苹果 0 香蕉 1 橘子 2
      })
    

    二、 arr.map():“映射”,原数组被“映射”成对应新数组。

    非常有用,做数据交互‘映射’。正常情况下,需要配个return,返回的是一个新的数组,如果没有return,就相当于forEach。
    注意:一定要用return

      let arr = [
        {title : 'aaa',read : 100,hot : true},
        {title : 'bbb',read : 200,hot : false},
        {title : 'ccc',read : 300,hot : true},
        {title : 'ddd',read : 400,hot : true},
      ];
              
      let newArr = arr.map((item,index)=>{
        let json = {};
        json.t = item.title;
        json.r = item.read;
        return json
      })
    
      console.log(newArr) //[{'t':'aaa',r:100},{}....]
    

    三、arr.filter():“过滤”、“筛选”.返回过滤后的新数组。如果回调函数返回true,就留下来

      let arr = [
        {title : 'aaa',read : 100,hot : true},
        {title : 'bbb',read : 200,hot : false},
        {title : 'ccc',read : 300,hot : false},
        {title : 'ddd',read : 400,hot : true},
      ];
              
      let newArr = arr.filter((item,index)=>{
        return item.hot
      })
    
      console.log(newArr) // [{title : 'aaa',read : 100,hot : true},{title : 'ddd',read : 400,hot : true}]
    

    四、 arr.some():是否“某些项”合乎条件。返回true,与下面的every算是好基友。

    let arr = [
      {title : 'aaa',read : 100,hot : true},
      {title : 'bbb',read : 200,hot : false},
      {title : 'ccc',read : 300,hot : false},
      {title : 'ddd',read : 400,hot : true},
     ];
                          
      let newArr = arr.some((item,index)=>{
        return item.hot
      })
    
      console.log(newArr) // true
    

    五、 arr.every():返回Boolean值,必须每一项都符合条件


    六、arr.reduce()

    reduce() 方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始合并,最终为一个值。

    七、arr.reduceRight():从右到左

    八、for...of

    1. 这是最简洁、最直接的遍历数组元素的语法
    2. 这个方法避开了for-in循环的所有缺陷
    3. 与forEach()不同的是,它可以正确响应break、continue和return语句
      let arr = ['苹果','梨','香蕉'];
    
      for (const key in arr) {
        console.log(arr[key])
      }
    

    相关文章

      网友评论

          本文标题:5-1数组热闹的循环

          本文链接:https://www.haomeiwen.com/subject/vqnfhftx.html