2022-08-09 11:56

JavaScript的函数式编程?

码自答

WEB前端

(1001)

(0)

收藏

与函数式编程相对应的是命令式编程,命令式编程就是代码从上到下依次执行。例如以下代码:

<!-- 命令式编程 代码从上到下按照次序执行 -->
<!-- 数组n的每个元素的值都加1 -->
<script type="text/javascript">
    var n = [1,2,3,4,5];
    for(var i=0;i<n.length;i++){
        n[i] = n[i]+1;
    }
    for(var i=0;i<n.length;i++){
        console.log(n[i]);
    }
</script>

以上代码实现数组n的每个元素的值都加1.运算结果如下:

image.png

命令式编程的代码不够灵活且不能重用.


函数式编程,可以将数据相加单独写成为一个函数。代码如下:

<!-- 函数式编程 -->
<script type="text/javascript">
    //相乘的方法
    function multiply(x,y)
    {
        return x*y;
    }
    
    //相加的方法
    function plus(x,y)
    {
        return x+y;
    }
    
    //遍历数组的方法
    function travers(n,fun,num)
    {
        for(var i=0;i<n.length;i++)
        {
            n[i] = fun(n[i],num);
        }
    }
</script>

以上代码写了三个函数,分别实现数据相乘,数据相加和遍历数组的方法,在遍历数组的同时,如果调用相加的方法,那么数组的每个元素就会加一个数,如果调用相乘的方法,那么数组的每个元素就会乘以一个数。

数组的每个元素加1,以下代码实现:

<script type="text/javascript">
    var n = [1,2,3,4,5];
    
    travers(n,plus,1);
    //遍历数组 调用plus函数 数组的每个元素+1
    
    for(var i=0;i<n.length;i++){
        console.log(n[i]);
    }
</script>


数组的每个元素乘以2,以下代码实现:

<script type="text/javascript">
    var n = [1,2,3,4,5];
    
    travers(n,multiply,2);
    //遍历数组 调用mulyiply函数 数组的每个元素*2
    
    for(var i=0;i<n.length;i++){
        console.log(n[i]);
    }
</script>


函数式编程:将程序分解成为一些可重用,更易于理解的部分,将这些函数组合起来,成为一个程序,只需要更改其中一个部分,可以让程序实现不同的功能。

0条评论

点击登录参与评论