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

何为高阶函数?

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

常见的高阶函数有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)
}

  

原文地址:https://www.cnblogs.com/cuipingzhao/p/15271698.html