判断购物车【全选按钮】,可以使用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