I have a loop inside another loop and trying to throw a variable out of inner loop but i get error:
addorder:524 Uncaught ReferenceError: productPrice is not defined
This is my success ajax code that runs these loops:
success: function(data) {
// تبدیل اطلاعات قیمت و موتور ها به جیسون
const objofproduct = JSON.parse(data.products);
const objofprice = JSON.parse(data.prices);
console.log(objofprice[0].productCode);;
// صفر لحاظ کردن متغیر فرضی
var i = 0;
// لوپ تولید آیتم هر شهر
jQuery.each(objofproduct, function(){
var e = 0;
jQuery.each(objofprice, function() {
console.log(objofprice[e].id);
if(objofprice[e].productCode == objofproduct[i].productCode) {
var productPrice = [objofprice[e].basePrice];
console.log(productPrice[0]);
var z = z + 1;
} else {
console.log('برای محصول قیمت تعریف نشده است');
var z = z + 1;
};
});
console.log(productPrice[0]);
// تعریف کد اچ تی ام ال قابل تکرار در صفحه
var productitem = "<div class='mymotor grid grid-cols-3 p-4 my-4 rounded-lg border-2 hover:bg-slate-100'> <div class='col-span-1 pl-4'><img class='w-full rounded-lg hover:shadow' src='"+objofproduct[i].imageUrl+"'/></div><div class='descriptionbig m-3 col-span-2 grid grid-cols-1 flex h-min'><div class='name pb-6 col-span-1 ltr w-full flex items-center h-fit font-semibold antialiased'><div class='w-2/3 flex justify-end'>"+objofproduct[i].brandName+" "+objofproduct[i].modelName+" "+objofproduct[i].tipName+"</div><div class='w-1/3 productcode font-light text-sm flex justify-start'>"+objofproduct[i].productCode+"</div></div><div class='text-lg'><b>» رنگ:</b> "+objofproduct[i].colorName+" <br> <b>» توضیحات:</b> "+objofproduct[i].description+"<br>"+productPrice[0]+"</div></div></div>";
// تعیین ساختار مادر ایکس و کدی که باید هر بار اضافه شود
$("#productx").append(productitem);
// افزودن یک عدد به متغیر فرضی
i = i + 1 ;
})
// پایان لوپ آیتم هر شهر
},
// پایان موفقیت```
I tried to set array for variable but it wasn’t successful.
2
Answers
I used result in jQuery loop and this is final code:
If you use
var
to declare a variable, it will be scoped to the function where it is declared.To access
productPrice
in the outer loop, you need to declare it outside the scope of the inner loop.The relevant part of your code becomes