js高阶函数filterreducemap(代码片段)

鸟随二月 鸟随二月     2022-12-12     376

关键词:

// 编程范式: 命令式编程/声明式编程
// 编程范式: 面向对象编程(第一公民:对象)/函数式编程(第一公民:函数)
// filter/map/reduce
// filter中的回调函数有一个要求: 必须返回一个boolean值
// true: 当返回true时, 函数内部会自动将这次回调的n加入到新的数组中
// false: 当返回false时, 函数内部会过滤掉这次的n
const nums = [10, 20, 111, 222, 444, 40, 50]

// let total = nums.filter(n => n < 100).map(n => n * 2).reduce((pre, n) => pre + n);
// console.log(total);

let total = nums.filter(function (n) 
  return n < 100
).map(function (n) 
  return n * 2
).reduce(function (prevValue, n) 
  return prevValue + n
, 0)
console.log(total);

// 1.filter函数的使用
// // 10, 20, 40, 50
// let newNums = nums.filter(function (n) 
//   return n < 100
// )
// // console.log(newNums);
//
// // 2.map函数的使用
// // 20, 40, 80, 100
// let new2Nums = newNums.map(function (n)  // 20
//   return n * 2
// )
// console.log(new2Nums);
//
// // 3.reduce函数的使用
// // reduce作用对数组中所有的内容进行汇总
// let total = new2Nums.reduce(function (preValue, n) 
//   return preValue + n
// , 0)
// console.log(total);

// 第一次: preValue 0 n 20
// 第二次: preValue 20 n 40
// 第二次: preValue 60 n 80
// 第二次: preValue 140 n 100
// 240

// // 1.需求: 取出所有小于100的数字
// let newNums = []
// for (let n of nums) 
//   if (n < 100) 
//     newNums.push(n)
//   
// 
//
// // 2.需求:将所有小于100的数字进行转化: 全部*2
// let new2Nums = []
// for (let n of newNums) 
//   new2Nums.push(n * 2)
// 
//
// console.log(new2Nums);
//
//
// // 3.需求:将所有new2Nums数字相加,得到最终的记过
// let total = 0
// for (let n of new2Nums) 
//   total += n
// 
//
// console.log(total);

js里常用函数之高阶函数

高阶函数:将函数作为参数或者返回值的函数。将函数作为参数的用法通常称作回调函数,函数参数通常会在主函数被执行之后被高阶函数调用。高阶函数的使用实例。可以把有相似操作的函数用一个高阶函数来重构,精简代码... 查看详情

函数高阶函数(代码片段)

目录:1、高阶函数2、map/reduce/filter3、flat4、高阶函数在实际开发中的意义 高阶函数  高阶函数是对其他函数进行操作的函数,可以将它们作为参数或返回它们。简单来说,高阶函数是一个函数,它接收函数作为参数或将... 查看详情

js常用的高阶函数(filtermapreduce)(代码片段)

filter数组过滤器该函数的参数为一个函数,根据函数的返回的boolean值,确定是否将当前元素返回到新数组中如果返回true,则当前元素放入新数组中,否则将过滤掉letarr=[12,34,5,63,100,123]//n表示遍历数组中的每一... 查看详情

数组中的高阶函数js闭包闭包的内存泄漏(代码片段)

...-coderwhy大神新课-学习视频教程-腾讯课堂一、数组中的5个高阶函数1.filter:过滤//[10,5,11,100,55]//10=>false=>不会被放到newNums//5=>false=>不会被放到newNums//11=>false= 查看详情

js函数式编程基础:高阶函数柯理化函数合成loadash

...的。函数式编程的常见应用场景ES6中的map、filter、some等高阶 查看详情

高阶函数及其运用(代码片段)

...当大家看到这个面试题的时候,能否在第一时间想到使用高阶函数实现?想到在实际项目开发过程中,用到哪些高级函数?有没有想过自己创造一个高阶函数呢?开始本篇文章的学习高阶函数定义高阶函数英文叫Higher-orderfunction... 查看详情

高阶函数hof和高阶组件hoc(higherorderfunc/comp)(代码片段)

一、什么是高阶函数(组件),作用是什么?子类使用父类的方法可以通过继承的方式实现,那无关联组件通信(redux)、父类使用子类方法(反向继承)呢为了解决类(函数)功能交叉/功能复用等问题,通过传入类/函数返回... 查看详情

javascript之手撕常用数组高阶函数(代码片段)

前言JavaScript中提供了一些高阶函数,例如map、filter、every等,还有ES6新提供的find等,熟练使用后能提高编写代码的效率。下面就一起来学习一下这些高阶函数,并使用原生JS模拟实现。那么什么样的函数是高阶函... 查看详情

js中几种常见的高阶函数

  高阶函数:英文叫Higher-orderfunction。JavaScript的函数其实都指向某个变量。既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。  一个最简单的高阶... 查看详情

js高阶函数发布订阅观察者模式手撕promise(代码片段)

promise高阶函数概念:1一个函数返回一个函数。2函数参数可以接受一个函数。满足任意两点即可。场景:扩展方法functioncore(...args)//核心代码console.log('core');要在core核心代码执行前后处理一些逻辑,但是不能修... 查看详情

js高级-高阶函数

对其他函数进行操作的函数,它接收函数作为参数(例如回调函数),或将函数作为返回值输出//作为参数callback是一个函数functionfn(callback)//作为返回值functionfn1()returnfunction();愿有岁月可回首,且以深情共白头。 查看详情

高阶函数(代码片段)

#高阶函数:1函数接收的参数是一个函数名2返回值中包含函数deffo():print(‘hello‘)returnfo#这就是一个高阶函数。。。fo(han(‘cat‘))#这也是一个高阶函数  查看详情

kotlin小知识之高阶函数(代码片段)

文章目录高阶函数定义高阶函数函数类型高阶函数示例内联函数内联函数的作用内联函数的用法noinline与crossinline高阶函数定义高阶函数高阶函数和Lambda的关系是密不可分的.像接受Lambda参数的函数就可以称为具有函数式编程风格... 查看详情

高阶函数-递归(代码片段)

1.高阶函数1.1高阶函数定义变量可以指向函数,函数的参数能接受变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称为高阶函数。只要满足以下任意一个条件,即是高阶函数1.接收一个或多个函数作为输入2.return... 查看详情

js高阶函数应用——函数节流

  在一些函数需被频繁调用的场景,如:window.onresize、mousemove、上传进度等等,操作频繁导致性能消耗过高,而造成浏览器卡顿现象,我们可以通过函数节流的方式解决此问题。  比如我们在window.onresize事件中打印... 查看详情

kotlin学习之高阶函数及常用基本高阶函数(代码片段)

基本概念f(g(x))与普通函数不一样,高阶函数是传入或者返回函数的函数,例如,我们可能用到的forEach就是一个高阶函数示例代码:funmain()valmyOperate=AdvanceOperate()//定义实例valoperate1=myOperate.multipleOperate(2,3)//高阶函... 查看详情

js高阶编程技巧--惰性函数(代码片段)

在vue、react等框架大量应用之前,我们需要使用jQuery或者原生js来操作dom写代码,在用原生js进行事件绑定时,我们可以应用DOM2级绑定事件的方法,即:元素.addEventListener(),因为兼容性,还有:元素.attachEvent()。所以我们需要封... 查看详情

3-13函数-高阶函数(代码片段)

...函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。只需满足以下任意一个条件,即是高阶函数:接受一个或多个函数作为输入return返回另一个函数#高阶函数deffunc(x,y):returnx*ydefcalc(x,y,f):print(f(x,y))calc(3,8,func)运行... 查看详情