Как проверить что в массиве есть объект у которого данное значения такое?
При клике добавляю продукт в массив cart.Надо проверить что если имя совпадает не добавлять продукт а прибавить quantity
Как проверить что в массиве есть объект у которого данное значения такое? P.S я знаю что сравнивать по имени неправильно, и это не пойдет в продакшен, просто требуется такую задачу решить!
К примеру на скрине 1 и 4 элемент одинаковый
Ответы (1 шт):
Автор решения: Aziz Umarov
→ Ссылка
Можно проделать такие манипуляции
function addNewItem(array, newItem) {
let existing = array.filter(i=>i.name==newItem.name);
if (existing.length == 1) {
existing.quantity += newItem.quantity;
} else {
array.push(newItem);
}
}
let array = [
{name: "name", quantity : 0 },
{name: "name1", quantity : 1 },
{name: "name2", quantity : 2 },
{name: "name3", quantity : 3 },
{name: "name4", quantity : 4 }
];
let newItem = {name: "name3", quantity : 5 };
addNewItem(array, newItem);
console.log(array);
let item = {name: "name5", quantity : 5 };
addNewItem(array, item);
console.log(array);
