Как проверить что в массиве есть объект у которого данное значения такое?

При клике добавляю продукт в массив cart.Надо проверить что если имя совпадает не добавлять продукт а прибавить quantity

Как проверить что в массиве есть объект у которого данное значения такое? P.S я знаю что сравнивать по имени неправильно, и это не пойдет в продакшен, просто требуется такую задачу решить!

a

К примеру на скрине 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);

→ Ссылка