1.Array.filter()

filter() 方法创建一个包含通过测试的数组元素的新数组。

运用案例:

说明: state.cart是个数组,goods_id是传递进来的参数,配合箭头函数使用   意思是cart数组里面的goods_id和传递进来的goods_id判断

// 根据id 删除对应的商品
        removeGoodsByid(state, goods_id) {
            // 把ID不相等的商品重新赋值给数组cart ,它们是不被删除的   filter数组过滤器
            state.cart = state.cart.filter(x => x.goods_id !== goods_id)
        },

 

2.Array.forEach()

forEach() 方法为每个数组元素调用一次函数(回调函数)。

运用案例:

说明:state.car是个数组,对它进行循环第一个参数state就是它本身,newState是传递进来的参数 ,对它进行循环,配合箭头函数,循环出来的goods_state值进行赋值newState

// 更新购物车中所有商品的勾选状态   实现全选的正选和反选
        updateAllGoodsState(state, newState) {
            state.cart.forEach(x => x.goods_state = newState)
        }

3.Array.find()

find() 方法返回通过测试函数的第一个数组元素的值。

运用案例:

说明:通过数组里商品的id和外界传过来的id  判断cart数组里 有没有该商品

    addToCart(state, goods) {
            // 通过数组里商品的id和外界传过来的id  判断cart数组里 有没有该商品
            const findResult = state.cart.find(x => x.goods_id === goods.goods_id)
            // 如果没有,就push进来
            if (!findResult) {
                state.cart.push(goods)
            } else {
                // 如果已经有就让数量自增+1
                findResult.goods_count++
            }

        },

4Array.reduce()

reduce() 方法在每个数组元素上运行函数,以生成(减少它)单个值。

reduce() 方法在数组中从左到右工作。另请参阅 reduceRight()。

reduce() 方法不会减少原始数组。

有4个参数total, value, index, array

运用案例:

说明:计算数组里面goods_count数量的总和    后面可以放个初始值0

state.cart.reduce((total, item) => total += item.goods_count, 0)