Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

291
Views
Javascript : for loop doesn't work with array.length

I want to do a for loop, in which var i, will increase by 1 for each element in my array. But, i doesn't increase, it log me "0" even if my array have something in it. I've logged array.length just to check if it works in the for loop, and it does.

So, I don't know what the problem is. I've tried many things, many ways to define my array just to make "for" loop works.

This is the code :

let button = document.getElementById("addToCartButton");
console.log(button);
button.onclick = function(event) {
    console.log("kuku le bouton");
    let amountInput = document.getElementById("quantity");
    let select = document.getElementById("colors");
    let productFinalDetails = Object.assign({}, productDetails, {
        color: `${select.value}`,
        quantity: amountInput.value,
    });
    let productArray = JSON.parse(localStorage.getItem("product"));
    console.log(productArray);
    if (productArray == null ) {
        productArray = [];
        productArray.push(productFinalDetails);
        localStorage.setItem("product", JSON.stringify(productArray));
        productArray = JSON.parse(localStorage.getItem("product"));
        console.log(productArray.length);
    } else if (productArray != null) {
        for (var i = 0; i < productArray.length; i++) {
            console.log(i);
            console.log(productArray.length);
        }
    }
};  

And here are google console screens !

google console

localStorage

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

You do not need i in your code

You do too many things on click

You likely meant to do this

let productData = localStorage.getItem("product");
let productArray = productData ? JSON.parse(productData) : [];
let button = document.getElementById("addToCartButton");
button.addEventListener("click", function(event) {
  console.log("kuku le bouton");
  let amountInput = document.getElementById("quantity");
  let select = document.getElementById("colors");
  let productFinalDetails = {
    color: select.value,
    quantity: amountInput.value
  };
  productArray.push(productFinalDetails);

  localStorage.setItem("product", JSON.stringify(productArray));
});

If you have more than one button, you need to change ID to class and delegate from the container

let productData = localStorage.getItem("product");
let productArray = productData ? JSON.parse(productData) : [];
document.getElementById("cartContainer").addEventListener("click", function(e) {
  const tgt = e.target;
  if (!tgt.matches("button")) return; 
  console.log("kuku le bouton");
  const itemDiv = tgt.closest("div");
  let amount = itemDiv.querySelector(".quantity").value;
  let color = itemDiv.querySelector(".colors").value
  let productFinalDetails = {
    color: color,
    quantity: amount
  };
  productArray.push(productFinalDetails);

  localStorage.setItem("product", JSON.stringify(productArray));
});
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!