• 关于高阶函数的一些常规操作


    何为高阶函数?

    通俗的讲,高阶函数就是可以接收另一个函数作为参数的函数

    常见的高阶函数有map,reduce,filter,sort,every,find,findIndex,forEach。那么他们有什么区别,使用于哪些场景呢

    1.map  返回一个新数组,不会改变原数组

    // 用来对数组进行特定的操作 返回一个新数组,不改变原始数组
          var list = [22,180,45,50,14]
    			let a = list.map(function (x) {
    				return x*2
    			});
    			console.log(a) //[44, 360, 90, 100, 28]
    

      

    2.reduce

    // 常用于计算数组的和
    let fansSum = this.fansData.reduce(function (prev, cur) {
      return prev + cur
    })

    3.filter  返回一个新数组,不会改变原数组

    // 用于筛选符合条件的元素
                this.advertShowpagesList = this.advertShowpagesList.filter(
                  item => item.name === 'home'
                  ) 
    // 数组去重
          var list = [1,2,3,4,56,32,21,90]
          let newList = list.filter(function(item,index,self){
            return self.indexOf(item) == index
          })

    4.sort

    // 常用来排序
          var list = [22,180,45,50,14]
    			list.sort(function (x, y) {
    				if(x>y){return 1}
            if(x<y){return -1}
            return 0
    			});
    			console.log(list)
    

      

    5.find 符合条件的第一个元素,找到则返回,找不到返回undefined

    // 常用来查找符合条件的元素
          var list = [22,180,45,50,14]
    			let a = list.find(function (x) {
    				return x == 14
    			});
    			console.log(a)
        }
    

      

    6.some

    // 用来查找是否有符合条件的元素
          var list = [22,180,45,50,14]
    			let a = list.some(function (x) {
    				return x>100
    			});
    			console.log(a) //true

    7.every

    // 用来查找是否元素均符合条件
          var list = [22,180,45,50,14]
                let a = list.every(function (x) {
                    return x>100
                });
                console.log(a) //false

    8.findIndex 符合条件的第一个元素下标,找到则返回,找不到返回-1

    // 用来查找符合条件的元素下标
          var list = [22,180,45,50,14]
    			let a = list.findIndex(function (x) {
    				return x==14
    			});
    			console.log(a) //4
    

      

    9.forEach  遍历每一个元素,会改变原数组

    var list = [22,18,45,50,14]
    list.forEach(function (x, y) {
        console.log(x)
        console.log(y)
      });
    console.log(list)
    }

      

  • 相关阅读:
    ab 性能测试工具的使用(Web并发测试)
    java 读取文件——按照行取出(使用BufferedReader和一次将数据保存到内存两种实现方式)
    java 判断两个时间相差的天数
    java 正则表达式的应用:读取文件,获取其中的电话号码
    mybatis 插入数据时返回主键
    CodeForces 493B Vasya and Wrestling 【模拟】
    图像边缘检測小结
    【JS设计模式】温习简单工厂模式、工厂方法模式、抽象工厂模式概念
    60.自己定义View练习(五)高仿小米时钟
    bzoj4361 isn
  • 原文地址:https://www.cnblogs.com/cuipingzhao/p/15271698.html
Copyright © 2020-2023  润新知