Поиск объекта в массиве 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);
}
}