【JavaScript】购物车商品判断是否全选,并计算选中商品的总价

判断购物车【全选按钮】,可以使用arr.every()

var arr = [
	{id: 1, name: '苹果', state: true},
	{id: 2, name: '香蕉', state: true},
	{id: 3, name: '西瓜', state: true}
]

// 使用 isAll 代表商品是否全选
var isAll = arr.every(item => item.state)  // 如果item.state全是true,返回true,否则返回false
console.log(isAll)  // true

过滤被选择的商品可以使用arr.filter(),计算总价可以使用arr.reduce()

var arr = [
	{id: 1, name: '苹果', state: true, price: 5, count: 10},
	{id: 2, name: '香蕉', state: false, price: 10, count: 5},
	{id: 3, name: '西瓜', state: true, price: 20, count: 2}
]

// 使用 filter() 获取被选中的商品
var selectedArr = arr.filter(item => item.state) // [{苹果对象},{西瓜对象}]

// reduce( (累加的结果, 当前循环对象) => { }, 初始值)
var result = selectedArr.reduce( (sum, item) => {
	return sum += item.price * item.count
}, 0)
// 可简写为 selectedArr.reduce( (sum, item) => sum += item.price * item.count, 0)
console.log(result) // 90
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值