美文网首页
高阶函数的使用

高阶函数的使用

作者: 想吃热干面了 | 来源:发表于2020-09-15 10:10 被阅读0次

案例

定义一个数组
const numbers = [15,222,19,87,321,109,66]
完成下面三个需求
  • 取出所有小于100的数字
  • 将取出的小于100的数字进行转化:*2
  • 将所有转化的数字相加,得到最终的结果

第一种方式:使用for循环遍历数组(傻瓜式)

1.取出所有小于100的数字
let newNumbers = []
for(let i of numbers){
  if ( i < 100 ) {
    newNumbers.push(i);   
  }
}
2.需求:将所有小于100的数字进行转化:*2
let newNumbers2 = [];
for(let i of newNumbers){
  newNumbers2.push(i*2);
}
3.需求:将所有转化的数字相加,得到最终的结果
let totalNumber = 0;
for (let i of newNumbers2) {
  totalNumber += i;
}

第二种方式:使用高级函数,详细写法

1.取出所有小于100的数字
//filter函数的使用
//filter:回调函数有一个要求,必须返回一个boolean值
//true:当返回true时,函数内部会自动返回这次回调的你加入新的数组中
//false:当返回false时,函数内部会过滤这次的n
let newNums = numbers.filter(function (n) {
   return n < 100
});
2.将所有小于100的数字进行转化:*2
//map函数的使用
let new2Nums = newNums.map(function (n) {
   return n * 2
});
3.将所有转化的数字相加,得到最终的结果
//reduce函数的使用:两个参数,第一个是回调函数,第二个是初始值
//reduce作用:对数组中所有的内容进行汇总
 let total = new2Nums.reduce(function (preValue, n) {
return preValue + n
},0);
reduce执行过程演示
数组:['1','45','2',22]  
第一次:preValue:0   n:1
第二次:preValue:1   n:45
第三次:preValue:45  n:2
第四次:preValue:47  n:22
total 69

第三种方式:第二种方式代码还是显得过多,因此可以简写

直接使用函数 简洁写法
let totalNum = numbers.filter(function (n) {
  return n < 100
 }).map(function (n) {
   return n * 2
 }).reduce(function (previousValue,n) {
   return previousValue + n
 },0);

第四种方式:函数方式还可以写的更加简单,使用 =>

let total = numbers.filter(n => n < 100).map(n => n * 2).map((pre, n) => pre + n);

相关文章

  • Kotlin Function vs Lambda

    函数定义方式: Lambda定义方式: 高阶函数定义: 高阶函数使用:

  • 快速上手 Kotlin 开发系列之高阶函数和内联

    本节讨论 Kotlin 高阶函数以及内联的使用 高阶函数 高阶函数就是指函数或者 Lambda 的参数又是一个函数...

  • Python常用高阶函数map、sorted、filter及生成

    先说什么是高阶函数,高阶函数是指可以接受函数作为参数、或者可以把函数作为结果返回的函数,这种函数就是高阶函数。使用...

  • Javascript学习笔记——8.8 函数式编程

    使用函数处理数组 用循环的写法 使用map和reduce 高阶函数 所谓高阶函数,就是操作函数的函数,它接受一个或...

  • Python 学习笔记 064

    续前节 Python高阶函数 filter的使用 功能 过滤器 filter的使用 示例 高阶函数-sorted...

  • wangyanhua--python2

    基本函数的使用 匿名函数 常用系统高阶函数 高阶函数 常用系统高阶函数 Python递归 安装第三方库 三国小说人...

  • Swift - 高阶函数map、flatMap、filter、r

    Swift 提供了如下几个高阶函数:map、flatMap、filter、reduce。使用高阶函数进行函数式编程...

  • Python之函数三

    1.高阶函数 1.1高阶函数简介和特点 接受函数作为参数,或者将函数作为返回值的函数就是高阶函数(当我们使用一个函...

  • 数组的高级操作

    Swift提供了如下几个高阶函数:map、flatMap、filter、reduce。使用高阶函数进行函数式编程不...

  • 函数式编程

    高阶函数(higher order function) 函数式编程的特点之一是使用高阶函数.接受函数为参数,或者把...

网友评论

      本文标题:高阶函数的使用

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