• 关于map some filter every等遍历的一些临时记忆


    • map():通过指定函数处理数组的每个元素,并返回处理后的数组。(不遍历空数组,不改变原数组,只是相当于把原数组克隆一份,把克隆的这一份的数组中的对应项改变了)
      •   
         let arr = [1,2,3,4,5]
            console.log(arr.map((item,index,array)=>item+1));结果为[2,3,4,5,6]

               map() 方法会将数组中元素依次传入方法中,并将方法的返回结果组成新数组返回。

    • filter:创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素(跟map差不多,区别就是map返回的是新数组,filter是过滤后的数组,当返回值为条件筛选时就体现出来了(map返回的是布尔值组成的数组,filter则是过滤后的新数组))
      •   
        let arr = [1,2,3,4,5]
            console.log(arr.filter((item,index,array)=>item>2));结果为[3,4,5]

          filter会根据函数中的筛选条件将返回的结果组成一个新的数组并返回

    • some():用于检测数组中的元素是否满足指定条件(函数提供)(不改变原数组,不遍历空数组,返回值为布尔值,跟every对应)
      •   
        let arr = [1,2,3,4,5]
            console.log(arr.some((item,index,array)=>item>5));结果为false
            console.log(arr.some((item,index,array)=>item>4));结果为true

          some方法会依次遍历数组的每个元素;

          •  如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测
          •  如果没有满足条件的元素,则返回false
    • every:用于检测数组所有元素是否都符合指定条件(通过函数提供)(不改变原数组,不遍历空数组,返回值为布尔值,跟some对应)
      •   
        let arr = [2,3,4,5]
        console.log(arr.every((item,index,array)=>item>1));结果为true
        console.log(arr.every((item,index,array)=>item>2));结果为false

          every和some正好相反:

          •  如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
          •  如果所有元素都满足条件,则返回 true
    • foreach():遍历数组中的每一项(跟map同理,不支持IE,没有返回值
      • let arr = [1,2,3,4]
            console.log(arr.forEach((item,index,array)=>item));结果为undefined(没有返回值);
            arr.forEach((item,index,array)=>console.log(item));结果为1,2,3,4
      • 不常用 因为不兼容 也无返回值 跟for of, for, for  in 类似
      • 遍历的方法还有很多 如:
            • reduce((previousValue, currentValue, index, array)=>previousValue+currentValue,initialValue)累加
            • reduceRight((previousValue, currentValue, index, array)=>previousValue+currentValue) 累加,跟reduce一样,不同的是reduceRight是从尾开始遍历 
            • find((item,index,array)=>item<n) 返回数组中第一个小于n的数值 并结束循环,如果没有就返回undefiend
            • findIndex((item,index,array)=>item<n) 返回数组中第一个小于n的数值的索引 并结束循环,如果没有就返回-1
            • keys()(ES6新增遍历Object的key 也可以用作数组的遍历,不知道有没有坑,没有做过实际运用) 
            • values() (ES6新增遍历Object的value 也可以用作数组的遍历,不知道有没有坑,没有做过实际运用
            • entries()(ES6新增遍历Object返回为[key,value]组成的数值 也可以用作数组的遍历,不知道有没有坑,没有做过实际运用
  • 相关阅读:
    鼠标经过,显示悬浮DIV
    js 循环向上滚动
    Android 全局搜索条写成自定义控件-曹永思
    CYS-Sqlite数据导入工具
    启动Android App时,动态将Sqlite数据库文件导入到手机中类方法
    asp.net 多线程
    1.母版简单创建和使用
    class表与student表之间的关系
    02Del.ashx(删除班级)
    05StuList.aspx(学生列表)
  • 原文地址:https://www.cnblogs.com/gitwusong/p/12195714.html
Copyright © 2020-2023  润新知