将键插入对象数组并防止重复项重复

时间:2020-09-22 15:34:31

标签: javascript reactjs redux

我有减速器功能

export const product = {}

export const cart = {
    cart: 0
}

export const addToCartReducer = (state = product, action) => {
    switch (action.type) {
        case 'ADD_TO_CART':
            let products = JSON.parse(localStorage.getItem('products'))
            console.log(products, 'products');
            const productById = products.find(item => { return action.id === item._id})
            let cart = JSON.parse(localStorage.getItem('cartProduct')) || []
            console.log(cart)
            cart.push(productById)
            localStorage.setItem('cartProduct', JSON.stringify(cart))
            return {
                ...state,
                product: {stock: productById.stock - 1, ...productById.stock},
                cart: cart
            }
        default:
            return state;
    }
}

如果按下操作(添加到购物车)按钮,它将在本地存储中存储一系列对象。问题是当我购买同一产品两次或更多次时,会产生重复的对象

[
{
image: product1_image,
name: product1_name
},
{
image: product2_image,
name: product2_name
},
{
image: product2_image,
name: product2_name
}
]

如何预防?我期望的是通过向每个产品对象添加键(数量)来增加相同对象或产品的数量

//expected result
[
{
image: 'product1_image',
name: 'product1_name',
quantity: 1
},
{
image: 'product2_image',
name: 'product2_name',
quantity: 2
},
]

0 个答案:

没有答案