Vue学习14_Vue高阶函数的使用

Vue高阶函数的使用

  1. filter函数filter函数的回调函数必须是一个boolean值,当返回一个true值时,函数内部会自动将这次回调的n加入到新的数组中,当返回一个false值时,回调函数会将这一次的n过滤掉,个人理解为filter函数相当于一个过滤器,只有满足条件的n才会被留下
    示例代码:从数组中筛选小于100的数,保留到新的数组中
    <script>
        // 定义一个数组
        const str = [12, 20, 100, 23, 67, 45, 233, 49]
        // filter函数的回调函数必须返回一个boolean值
        // 当返回一个true值时,函数内部会自动将这次回调的n加入到新的数组中,
        // 当返回一个false值时,函数内部会自动将这次回调的n过滤掉
        let newStr = str.filter(function (n) {
            return n < 100
        })
        console.log(newStr);
        // filter筛选数组数据
/script>

运行结果
在这里插入图片描述
2. map函数map函数对数组中所有函数进行操作,遍历数组中所有的元素
示例代码:对filter得到的新数组的每一个元素都+1:

    <script>
        // 定义一个数组
        const str = [12, 20, 100, 23, 67, 45, 233, 49]
        console.log("原始数组数据:", str);
        
        // map函数
        let newStr1 = newStr.map(function (n) {
            return n + 1
        })
        console.log("现在数组数据:", newStr1);
    </script>

运行结果
在这里插入图片描述

  1. reduce函数reduce函数对数组元素进行汇总,有点类似于递归,reduce函数的回调函数有两个参数,第一个参数preValue就是函数返回的上一次结果的值,n就是遍历数组的值
    示例代码:对map遍历过的新数组进行求和:
    <script>
        // 定义一个数组
        const str = [12, 20, 100, 23, 67, 45, 233, 49]
        //reduce对数组元素进行汇总
        // 对str数组数据进行求和
        let total = newStr1.reduce(function (preValue, n) {
            return preValue + n;

            //const str = [12, 20, 100, 23, 67, 45, 233, 49]
            // 过程:preValue就是上一个值,n就是数组遍历的值
            /*
              第一次 preValue=0,reduce第二个变量是0,所以上一个值是0,n=12
              第二次 preValue=12,12+0, n=20
              第三次 preValue=32, 12+20, n=100
              第三次 preValue=132 100+32 n=23
              ....
            */
        }, 0)

        console.log(total);
    </script>

运行结果
在这里插入图片描述
4. 完整代码实现

    <script>
        // 定义一个数组
        const str = [12, 20, 100, 23, 67, 45, 233, 49]
        // filter函数的回调函数必须返回一个boolean值
        // 当返回一个true值时,函数内部会自动将这次回调的n加入到新的数组中,
        // 当返回一个false值时,函数内部会自动将这次回调的n过滤掉
        let newStr = str.filter(function (n) {
            return n < 100
        })
        console.log(newStr);
        // filter筛选数组数据



        console.log("原始数组数据:", str);
        // map函数
        let newStr1 = newStr.map(function (n) {
            return n + 1
        })
        console.log("现在数组数据:", newStr1);

        // map对所有数组数据进行操作


        //reduce对数组元素进行汇总
        // 对str数组数据进行求和
        let total = newStr1.reduce(function (preValue, n) {
            return preValue + n;

            //const str = [12, 20, 100, 23, 67, 45, 233, 49]
            // 过程:preValue就是上一个值,n就是数组遍历的值
            /*
              第一次 preValue=0,reduce第二个变量是0,所以上一个值是0,n=12
              第二次 preValue=12,12+0, n=20
              第三次 preValue=32, 12+20, n=100
              第三次 preValue=132 100+32 n=23
              ....
            */
        }, 0)

        console.log(total);
    </script>

运行结果
在这里插入图片描述
5. 上述代码也可以合起来写
示例代码

    <script>
        // 定义一个数组
        const str1 = [12, 20, 100, 23, 67, 45, 233, 49]
        let sum = str1.filter(function (n) {
            return n < 100
        }).map(function (n) {
            return n + 1
        }).reduce(function (preValue, n) {
            return preValue + n
        }, 0)

        console.log('高阶函数计算的值', sum)
    </script>

运行结果
在这里插入图片描述

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值