안녕하십니까 슨상님, 제 미천한 실력과 구글 검색으론 도저히 해결이 안되어서 질문 드립니다.
지금 장바구니 기능과 localStorage 숙제 - 응용 2를 만들고 있는데 객체배열을 로컬에 추가하고 중복을 제거하는 것까지는 됩니다.
var prodArr[{title: 'products', num: 1}] 형태로 로컬에 저장중인데 뒤에 장바구니에 담긴 수량인 num를 변경하는 게 안됩니다.
요건 코드입니다.
var prodArr = [];
$('.buy').click(function (e) {
var prodName = $(e.target).siblings('h5').html();
if (Array.isArray(prodArr) && prodArr.length === 0) {
prodArr.push({ title: prodName, num: 1 });
localStorage.setItem('cart', JSON.stringify(prodArr));
} else {
var takeOut = JSON.parse(localStorage.getItem('cart'));
if (takeOut.some((v) => v.title === prodName)) {
console.log('중복', takeOut.num);
takeOut[0].num = takeOut[0].num + 1; <-- 요 부분이 문제입니다. 어떤 방식으로 만들어야 구매버튼을 클릭한 상품의 객체안의 수량을 변경할 수 있습니까(일단 0번째 인덱스만 받아왔습니다)
localStorage.setItem('cart', JSON.stringify(takeOut));
} else if (takeOut.some((v) => v.title !== prodName)) {
takeOut.push({ title: prodName, num: 1 });
localStorage.setItem('cart', JSON.stringify(takeOut));
/* takeOut.push(prodName);
localStorage.setItem('cart', JSON.stringify(takeOut)); */
}
}
console.log(prodArr);
});