Estoy tratando de agregar productos al carrito en mi sitio web con localStorage, así que inicializo una matriz y luego inserto productos en ella. El problema es cuando uso JSON.parse() para impulsar un producto y luego lo encadeno nuevamente con JSON.stringify(), devuelve un número en lugar de la matriz. Esta es la parte de mi código que arroja un error:
let product = { id: i + 1, name: productNames[i].innerText, price: prices[i].innerHTML, img: imgs[i].src }; if(localStorage.productsInCart) { let productsInLocalStorage = JSON.parse(localStorage.getItem("productsInCart") || "[]"); console.log(productsInLocalStorage); let newArray = productsInLocalStorage.push(product); console.log(JSON.stringify(newArray)); localStorage.productsInCart = JSON.stringify(newArray); numberOfProducts.innerHTML = parseInt(numberOfProducts.innerHTML, 10) + 1; } else { let productToStore = JSON.stringify([product]); localStorage.setItem("productsInCart", productToStore); numberOfProducts.style.display = "block"; numberOfProducts.innerHTML = 1; };Y luego en la consola: ingrese la descripción de la imagen aquí
Ese 2 en un círculo es el console.log() de JSON.stringify. He estado buscando información detallada sobre esto, pero nada parece funcionar.