JS将对象推送到变量,将最后一个对象添加到所有元素中

JS pushing object to a variable add the last object to all the elements

本文关键字:添加 元素 一个对象 对象 变量 JS 最后      更新时间:2023-09-26

我正在尝试这个,

 var coProducts = {0:{id:"nsdn",variant:"kjdfhnkjsd",price:"sdfd",quantity:"hbsdjh"},
                   1:{id:"abc",variant:"def",price:"ghi",quantity:"ijk"}};
        var basketProds = new Object();
        var arrBasketProds = [];
        var i;
        for(i in coProducts) { 
           if (coProducts.hasOwnProperty(i)) {
                basketProds.ProductID = coProducts[i].id;
                basketProds.VariantID = coProducts[i].variant;
                basketProds.Price = coProducts[i].price;
                basketProds.quantity = coProducts[i].quantity;
                arrBasketProds.push(basketProds);
           }
        }
        pageProperties = {
            Currency: "EUR",
            Products: arrBasketProds
        }

现在 arrBasketProds:给我以下结果

      Currency: "EUR"
      Products: Array[2]
                0: Object
                   Price: "abc"
                   ProductID: "def"
                   VariantID: "ghi"
                   quantity: "ijk"
                1: Object
                   Price: "abc"
                   ProductID: "def"
                   VariantID: "ghi"
                   quantity: "ijk"

但我希望coProducts的价值都可以在arrBasketProds中找到。

您需要

在每次迭代中初始化basketProds = new Object();

var coProducts = {
  0: {
    id: "nsdn",
    variant: "kjdfhnkjsd",
    price: "sdfd",
    quantity: "hbsdjh"
  },
  1: {
    id: "abc",
    variant: "def",
    price: "ghi",
    quantity: "ijk"
  }
};
var basketProds;
var arrBasketProds = [];
var i;
for (i in coProducts) {
  if (coProducts.hasOwnProperty(i)) {
    basketProds = new Object();     // This creates a new object.
    basketProds.ProductID = coProducts[i].id;
    basketProds.VariantID = coProducts[i].variant;
    basketProds.Price = coProducts[i].price;
    basketProds.quantity = coProducts[i].quantity;
    arrBasketProds.push(basketProds);
  }
}
pageProperties = {
  Currency: "EUR",
  Products: arrBasketProds
}
console.log(arrBasketProds);