Поиск объекта в массиве filter find

Есть в виде массива, в нее пушатся товары в виде объекта. Мне нужно при добавлении проверять,есть ли уже такой товар, но у меня не получается не через find ни через filter. Делаю во vue

Обработчик о продукт

 <div class="item"
     v-if="+key1 === +good.T"
     v-on:click.prevent="buy({
     name: name.B[good.T].N,
     quantity: good.P,
     price: good.C,
 })">

Метод добавления

 buy(product) {
     this.$store.commit('addProduct', product, {rootState: true});
 },

Мутация и стейт

mutations: {
        addProduct(state, product) {
            state.cart.filter(function (item) {
                if (item.name == product.name) {
                    return false
                } else {
                    state.cart.push(product);
                }
            })
        },
    },
    state: {
        cart: [],
    },

В чем ошибка?


Ответы (1 шт):

Автор решения: Dmitry

Проверяйте методом every()

addProduct(state, product) {
    if (state.cart.every(item => item.name !== product.name)) {
        state.cart.push(product);
    }
}
→ Ссылка