상품 구매 누르면 상품 갯수가 올라가게?
[ {title : '상품명a', num : 2}, {title : '상품명b', num : 4} ... ] 이렇게 저장해보려고
아래 와 같이 코드 작성을 해보았습니다...
그런데 JSON.pasrse로 array안 object 데이터에 "{}" 따옴표가 붙어서인지
num 조작이 되지 않는것 같습니다.
stringifyrk 잘못되었나, 체크해보아도 해결이 되지 않아 문의드립니다!
<script>
.. 중략 ..
$('.buy').click(function(e){
var title = $(e.target).siblings("h5").text();
var num = 1;
var arr = `{제품 : ${title}, 합계 : ${num}}`;
if(localStorage.getItem('cart') != null){
// 로컬스토리지가 채워져 있을경우
var 장바구니 = JSON.parse(localStorage.getItem('cart'));
=============================================
console.log(장바구니);
//콘솔 출력값 ["{제품 : Blossom Dress, 합계 : 1}", "{제품 : Springfield Shirt, 합계 : 1}", "{제품 : Black Monastery, 합계 : 1}"]
=============================================
if(장바구니.includes(arr)){
var 제품인덱스 = 장바구니.findIndex(data => data === arr);
var 장바구니2 = 장바구니.map(data =>
장바구니[제품인덱스].합계 = 장바구니[제품인덱스].합계 + 1
)
localStorage.setItem('cart', JSON.stringify(장바구니));
}
else {
장바구니.push(arr);
localStorage.setItem('cart', JSON.stringify(장바구니));
}
//});
}
else {
localStorage.setItem('cart', JSON.stringify([arr]));
// 로컬스토리지가 비어있을 경우
}
});
</script>