0

The length of the array should be 4 but it pushes 12.

let id = document.querySelector('#product-recommendations')
let items = id.querySelectorAll('.card-img-link img:first-of-type, .card-body p.card-title, .card-body .price span')
    
let arr = [];

items.forEach((elem)=>{
 let obj = {image:'', title:'', price:''};
  if(elem.classList.contains('img-lazy-load')){
    obj.image = elem.src;        
  }else if(elem.classList.contains('card-title')){
    obj.title = elem.innerText;
  }else if(elem.classList.contains('font-weight-light')){
         obj.price = elem.innerText;
  }
     arr.push(obj);
})

Thanks in advance. The array looks like this,

{image: "https://images1", title: "", price: ""}
{image: "", title: "Jeans", price: ""}
{image: "", title: "", price: "59,95 €"}
{image: "https://images2", title: "", price: ""}
{image: "", title: "Wickelrock", price: ""}
{image: "", title: "", price: "64,95 €"}
{image: "", title: "", price: ""}
{image: "", title: "2-reihiger", price: ""}
{image: "", title: "", price: "139,95 €"}
{image: "", title: "", price: ""}
{image: "", title: "Bikerjacke", price: ""}
{image: "", title: "", price: "139,95 €"}

The expected output should be like this,

{image: "https://images1", title: "Jeans", price: "59,95 €"}
{image: "https://images2", title: "Wickelrock", price: "64,95 €"}
{image: "https://images3", title: "2-reihiger", price: "139,95 €"}
{image: "https://images4", title: "Bikerjacke", price: "139,95 €"}
jai
  • 1
  • 1

0 Answers0