• 软件:1711
  • 资讯:45336|
  • 收录网站:98302|

IT精英团

js系列十六:函数式编程

js系列十六:函数式编程

浏览次数:
评论次数:
编辑: 泽洋
信息来源: 51CTO博客
更新日期: 2021-07-22 12:19:39
摘要

js系列十六:函数式编程,当我们想要使用一个函数时,其实就是想要将一些功能,逻辑等封装起来以便使用,相信有一个编码基础的读者对于封装这个概念并不陌生,我们经常使用函数封装来做一下封装来做一些事情。例如,若想计算任意三个数的和,就可以将这三个数作为参数封装成一个简单的函数functionadd(a,b,c){returna+b+c;}当我们需要再次计算得时候,就可以直接调用上面的代码add(1,2...

  • 资讯详情

当我们想要使用一个函数时,我们实际上想要封装一些函数和逻辑以供使用。我相信有编码基础的读者对封装的概念并不陌生。我们经常使用函数封装来封装和做一些事情。

例如,如果要计算任意三个数字的总和,可以将这三个数字作为参数打包到一个简单的函数中

函数add(a,b,c){ 0

返回a b c;

}

当我们需要再次计算时,可以直接调用上面的代码

add(1,2,3);

一般来说,当我们想做一些简单的事情时,我们可能看不到封装作为一个函数所带来的便利。如果我们想做一些更复杂的事情,比如计算一个数组中所有项目的总和,会怎么样?

函数mergerar(arr){ 0

var结果=0;

for(var I=0;我;iarr . length){ 0

rresult=arr[I];

}

返回结果;

}

如果每次都调用for循环来计算数组中所有子项的总和,而不是将其封装为函数,那么代码量肯定会过多。封装后,再次这样做时,只需要一句代码。

mergerar([1,2,3,4,5]);

这里的思路是函数式编程

函数式编程

接下来,让我们用一个简单的例子来区分两种不同的思维。

当我们使用命令式编程时,编写的代码如下

var数组=[1,2,3,4,5,' m ',6];

var RES=[];

for(var I=0;iarray.lengthI){ 0

if(数组[i]的类型===' number '){ 0

res.push(数组[i])

}

}

那么问题来了,如果数组不同,但是需求是一样的,那么每次写同样的代码并不无聊。

于是功能封装出现了,

函数getNumbers(数组){ 0

var RES=[];

array . foreach((item)={ 0

if(项目类型===' number '){ 0

res.push(项目);

}

})

返回res

}

var数组=[1,2,3,4,5,' ken ',6];

var res=getNumbers(数组);

js系列十九:纯函数的可缓存性
« 上一篇
返回列表
下一篇 »
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
你会是第一个来这里评论的人吗?
最近发布资讯
更多