@maxim9999
пока учусь

Как делать, если одинаковый товар тогда увеличиваем количество и добавлять в массив, на чистом js?

он неправильно добавляется в массив

он работает только неправильно каждый раз добавляется отдельно и увеличится количество
я хочу если одинаковый товар не добавляет второй раз товар а проста увеличился количество

var arr = [];

function shop(){
  
var i;
var item = document.querySelectorAll('.item');
  for ( i = 0; i < item.length; i++) {
      item[i].addEventListener('click', buyCourse);
  }

  function buyCourse(e){
    if(e.target.classList.contains('item-buy')){
     const target = e.target.parentElement;  
     addCart(target);    
    }
  }
}

function addCart(target) {
    //create an Object with course data
    const courseObj = {
        image: target.querySelector('img').src,
        title: target.querySelector('#item-title').textContent,
        price: target.querySelector('#item-price').textContent,
        count: 0
    };

arr.push(courseObj); 

//если одинаковый товар тогда увеличиваем количество

for (var i = 0; i < arr.length; i++) {
  
  if (arr[i].title == courseObj.title) {
    courseObj.count++;
  }
}
  var stringify = JSON.stringify(arr);
  text.innerHTML = stringify;
}

shop();


он увеличивает количество таким образом :
[
  // 1  товар  
{"image":"file:///C:/Users/Desktop/example/array/img/remax.jpg","title":"Remax","price":"200000 ","count":1},
{"image":"file:///C:/Users/Desktop/example/array/img/remax.jpg","title":"Remax","price":"200000 ","count":2},
// 2 товар  Clipper Deyi
{"image":"file:///C:/Users/Desktop/example/array/img/1088.jpg","title":"Clipper Deyi ","price":"300000 ","count":1},
{"image":"file:///C:/Users/Desktop/example/array/img/1088.jpg","title":"Clipper Deyi ","price":"300000 ","count":2},
{"image":"file:///C:/Users/Desktop/example/array/img/1088.jpg","title":"Clipper Deyi ","price":"300000 ","count":3}]


я хочу вот так увеличился

//   1  товар  
[{"image":"file:///C:/Users/Desktop/example/array/img/remax.jpg","title":"Remax","price":"200000 ","count":2},
//// 2 товар  Clipper Deyi
{"image":"file:///C:/Users/Desktop/example/array/img/1088.jpg","title":"Clipper Deyi ","price":"300000 ","count":3}]
  • Вопрос задан
  • 54 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Lukmann
btn.addEventListener('click',addToCard);
function addToCard(){
let cart = [];
	let id = this.getAttribute('data-id');
//id это идентификатор и номер продукта //
	if (cart[id] != undefined) {
		cart[id]++;
	}else {
		cart[id] = 1;
	}

}

посмотри на ютубе видос интернет магазин с нуля на канале WEBDEV c нуля
там есть этот момент
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Artezio Нижний Новгород
от 130 000 до 180 000 ₽
Artezio Москва
от 160 000 до 220 000 ₽
Artezio Санкт-Петербург
от 160 000 до 220 000 ₽
28 февр. 2021, в 18:31
4000 руб./за проект
28 февр. 2021, в 17:59
500 руб./за проект
28 февр. 2021, в 17:56
16000 руб./за проект