【又见JavaScript】JS中的高阶函数

JS学习知识点整理
【又见JavaScript】JS中的高阶函数
filter/map/reduce

编程范式: 命令式编程/声明式编程
编程范式: 面向对象编程(第一公民:对象)/函数式编程(第一公民:函数)

以往我们写代码,可能经常会用面向对象的编程思想去完成需求,但其实适当了解一些高阶函数,会使我们的代码可读性、性能更高~这里整理了三个高阶函数的使用方法(附上以往的思路和写法,可以做一个对比):

  • 需求1:取出所有小于100的数字
    以往的写法:
const nums = [10, 20, 111, 222, 444, 40, 50]
let newNums = []
for (let n of nums){
  if (n < 100){
    newNums.push(n)
  }
}
  • filter()
    用来迭代一个数组,并且按给出的条件过滤出符合的元素,不符合的元素会过滤掉,组成一个新的数组;
    需要传入一个回调函数,并且它有一个参数(暂且叫 n),该参数是当前迭代项;
    • 这个回调函数, 有一个要求:必须返回一个Boolean值
      返回true时:
      函数内部会自动将这次回调的n加入到新的数组中
      返回false:
      函数内部会过滤掉这次的n
    • 用法:
let newNums = nums.filter(function (n) {
  // 每次将n和100 进行n 是否 <100 的判断,若符合就返回true,这个符合条件的n也会被记录到这个新数组中
  // 不符合判断的n 就会被过滤掉
  return n < 100; 
})
  • 需求2:将所有小于100的数字进行转化:乘以二
    以往的写法:
let new2Num = []
for (let n of nums){
  new2Num.push(n * 2)
}
  • map()
    它返回一个新的数组,数组中的元素为原始数组调用函数处理后的值
  • 用法:
let new2Nums = newNums.map(function (n) {
  return n * 2 
})

在别人的总结下进行整理的,感谢~
JavaScript中Map函数的用法(踩坑之最!!!)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值