Vue计算属性中reduce方法实现遍历

Vue计算属性使用reduce方法实现遍历

在前端页面中要实现一个商品购物车的遍历来计算出总价格,很多小伙伴都会想到用循环,可是这样编写的代码语句过于臃肿,下面我们来学习一下reduce方法实现遍历计算出商品总价格。

02、未登录购物车:选中商品

在页面中,每个购物车商品左侧,都有一个复选框,用户可以选择部分商品进行下单,而不一定是全部:
在这里插入图片描述
我们定义一个selected变量,记录所有被选中的商品:
在这里插入图片描述

选中一个

我们给商品前面的复选框与selected绑定,并且指定其值为当前购物车商品:

 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Cs8GHmWD-1616304371638)(assets/1600142057499.png)]

初始化全选

我们在加载完成购物车查询后,初始化全选:
在这里插入图片描述

计算总价格(使用reduce方法)

然后编写一个计算属性,计算出选中商品总价格:

computed:{
          //计算总价格
          //数组的reduce()方法:
            /**
             *  参数一: 一个函数(使用箭头函数)代表运算逻辑
             *       函数的两个参数
             *               c1: 用于存储累计的结果
             *               c2: 当前需要运算的元素
             *  参数二: 默认值
             */
          totalPrice(){
              return this.selected.reduce((c1,c2)=>c1+c2.price*c2.num,0);
          }
        },

在页面中展示总价格:

 
效果:

在这里插入图片描述

Memorial Day is 537 days
I miss you
xiaokeai

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
计算属性Vue.js框架的一种特殊属性,它能够根据依赖的属性动态计算出一个新的值。在这里,使用reduce()方法计算属性的用法是指在计算属性使用reduce()方法对数组的每个元素按序执行一个由您提供的reducer函数,将其结果汇总为单个返回值。 具体地说,在Vue.js定义计算属性时,可以通过computed选项来创建计算属性。在这个例子计算属性的名字为totalPrice,它使用reduce()方法计算选商品的总价格。reduce()方法接收两个参数:一个箭头函数和一个初始值。箭头函数的两个参数分别代表累计结果和当前需要运算的元素。 在计算属性的箭头函数,将累计结果与当前商品的价格乘以数量(price * num)相加,并将结果作为下一次运算的累计结果。最后,reduce()方法返回计算出的总价格。 总之,计算属性的用法reduce就是在计算属性使用reduce()方法对数组的每个元素按序执行一个由您提供的reducer函数,将其结果汇总为单个返回值。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Python 高级函数实训](https://download.csdn.net/download/weixin_40408952/11152960)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Vue计算属性reduce方法实现遍历](https://blog.csdn.net/weixin_42914989/article/details/115048187)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [v-model和计算属性reduce() 方法](https://blog.csdn.net/weitunfei/article/details/124754896)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值