vue学习记录-08(二) 高阶函数

vue学习记录-08(二) 高阶函数

这篇文章是根据codewhy老师在b站的视频进行的学习记录



一、编程范式

1、命令式编程与声明式编程

命令式编程:一步一步的告诉计算机怎么做。几乎所有编程语言都可以这么写
声明式编程:告诉计算机你需要什么,怎么做由计算机决定。例如HTML、CSS、SQL等都属于声明式编程。

2、面向对象编程与函数式编程

面向对象编程:第一公民是对象,优先考虑对象与对象之间的关系。
函数式编程:第一公民是函数,以函数计算为核心进行的编程方式,更符合人类语言习惯。

二、一个数据处理的小案例

公共数据:

	const nums = [10, 20, 111, 222, 444, 40, 50]

1、三个需求的解决方法

(一)取出所有小于100的数字

let newNums=[]
for(let n of nums){
  if(n<100){
    newNums.push(n)
  }
}
console.log(newNums);

(二)将所有小于100的数字进行转化:全部*2

let new2Nums=[]
for(let n of newNums){
  new2Nums.push(n*2)
}
console.log(new2Nums);

(三)将所有new2Nums数字相加,得到最终的结果

let total=0
for(let n of new2Nums){
  tatal+=n
}
console.log(total);

2、使用函数式编程如何解决

如果使用函数式编程,这个案例的代码量将会大大减小:

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

这种大括号内只有一个return的代码也可以用箭头函数来写。

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

下面来以此讲解这个案例中所使用的函数。

(一)filter函数的使用

用法:过滤出数组中符合要求的元素并返回一个新数组
格式:array.filter(function(currentValue,index,arr), thisValue)
filter包含一个回调函数function(currentValue,index,arr),回调函数有一个要求:必须返回一个boolean值。
当返回true时,函数内部会自动将这次回调的currentValue加入到新的数组中;
当返回false时,函数内部会过滤掉这次的currentValue。

let newNums = nums.filter(function (n) {
  return n < 100
})
console.log(newNums);

(二)map函数的使用

用法:对数组内的所用数据按顺序处理并返回一个新数组

let new2Nums=newNums.map(function(n){
  return n*2
})
console.log(new2Nums);

(三)reduce函数的使用

用法:对数组内的所有元素进行汇总并返回一个值

let total=new2Nums.reduce(function(preValue,n){
  return preValue+n
},0)
console.log(total);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值