• es6 数组方法的扩展


    数组的扩展

    数组的类 Array
      数组的定义
        var arr = [12,23]
        var arr = new Array(3) 数字3代表 三个元素 或 3个空位
        arr[0] = ""; arr[1] = "" ; arr[2] = ""
        var arr = new Array("张","王")


        var arr = new Array("1") //代表一个数组 且值为1
        console.log(arr) //["1"]

        var arr = new Array(1) //代表n个元素
        console.log(arr) // [empty]

      数组方法:
        of方法 :
        //of
        var arr = Array.of(4)
        console.log(arr) //[4]
        返回一个元素为4的数组

        foreach 方法:
        //foreach() 遍历数组 返回值是undefined
        var arr = ["王一博","肖战","魏婴","蓝忘机"]
        arr.forEach((item,index) => {console.log(item)})


        let arr = ["王一博","肖战","魏婴","蓝忘机"]
        let as = arr.forEach((item,index) => {console.log(item)})
        console.log(as) //undefined
      
        map方法:
          //map() 遍历数组 返回值是数组
          map最大的功能将原来的数组 一一映射成一个新的数组,内部一定使用return
          let arr = ["王一博","肖战","魏婴","蓝忘机"]
          let as = arr.map((item,index) => {
            return item;
          })
          console.log(as) // ["王一博","肖战","魏婴","蓝忘机"]

          filter方法:
        //filter() 过滤 从数组中找出所有符合条件的元素,并返回成一个新的数组,不改变原来的数组
          let arr = [
            {"name":"王一博","age":22},
            {"name":"肖战","age":20},
          {"name":"谭雅宁","age":19}
          ]
          let as = arr.filter((item,index)=>{
          //return 返回的值是true 就保留 返回的值是false 就不保留
          return item.age>20;
          })
          console.log(as) // {name: "王一博", age: 22}

        find方法:
        //find() 对数组进行逐个查找,当返回值为true说明找到,直接返回结果,不再往下查找
          let arr = [
          {"name":"王一博","age":22},
          {"name":"肖战","age":20},
          {"name":"谭雅宁","age":19}
            ]
          let as = arr.find((item,index) => {
          return item.age>18;
          })
          console.log(as) //{name: "王一博", age: 22}

          every() / some()
          every():
          //every() 判断数组中的每个元素是否满足条件 ,都满足条件 返回值是true 如果有一个不满足 就是 false
            let arr = [
              {"name":"王一博","age":22},
              {"name":"肖战","age":20},
              {"name":"谭雅宁","age":19}
            ]
            let as = arr.every((item,index) => {
            return item.age>20;
              })
          console.log(as) //false

          some():
          //some 判断数组中的元素是否满足条件,只要有一个满足就返回true , 如果都不满足就是false
            let arr = [
              {"name":"王一博","age":22},
              {"name":"肖战","age":20},
              {"name":"谭雅宁","age":19}
            ]
            let as = arr.some((item,index) => {
              return item.age>21;
            })
          console.log(as) //true

        reduce():
          //reduce() 迭代 从第二个元素执行,因为第一个元素没有上一个
          //参数是一个回调函数 ,回调函数可以放三个参数 第一个prev 代表上一次reduce返回的值 第二个item是当前元素 第三个index 是当前索引
          let arr = [1,2,3,4,5,6,7,8,9,10]
          let as = arr.reduce((prev,item,index) => { //item 数组的元素从第二个开始 //prev 上一次的返回值 (第一个前面没有值)
          console.log(prev) // 1 3 6 10 15 21 28 36 45
            return prev+item;
          })
          console.log(as) //55


        //如果想让reduce从第一个元素开始执行 (默认从第二个执行) 回调函数后面的参数就是第一次执行reduce()的prev
            let arr = [1,2,3,4,5,6,7,8,9,10]
            let as = arr.reduce((prev,item) => {
              console.log(prev)
              return prev+item;
            },0) //代表从第一个元素开始,并且让他的返回值是0
          console.log(as) //55


          let name = ["tom","jim","jack","tom","jack"]
          let as = name.reduce((prev,item) => {
            if(item in prev){
              prev[item]++
            }else{
              prev[item]=1
            }  
              return prev;
            },{})
          console.log(as) // {tom: 2, jim: 1, jack: 2}

  • 相关阅读:
    json和xml数据的解析
    block(闭包)
    自定义控件注意点
    字符串使用
    如何用运行时,给系统分类添加属性?
    论代码规范
    常用设计模式
    多控制器管理
    GDI+学习及代码总结之-----画笔 .
    MFC程序添加Web浏览器控件(IE控件)
  • 原文地址:https://www.cnblogs.com/gdqx/p/11166576.html
Copyright © 2020-2023  润新知