大家晚上好
作为Java培训的一部分,我必须介绍一个项目。在开发过程中,我浏览带有SQL选择查询所有行的对象数组。然后
在表的每个元素上使用循环,然后在每个键上填充填充并测量我的对象infDb
直到第二个元素都正确为止。我将对象infDb
推入表infVal2
因此,问题在于第二次推加之后会影响对象的最后一个值的整个数组。
我有一个空表:
var infVal2 = []
还有一个对象:
var infDb = {
"Name": "",
"Qte": 0,
"Marque": "",
"Surv": 0,
"Checked": false
};
function loadData(data) {
var infDb = {
"Name": "",
"Qte": 0,
"Marque": "",
"Surv": 0,
"Checked": false
};
return new Promise((resolve) => {
var obj = data;
// lors de la appel all, on boucle sur obj qi est le tableau d'objet complet de la base
obj.forEach((element, index) => {
console.log("index :" + index + "-- element:" + element.Name);
for (cle in element) {
console.log("cle :" + cle + "-- element:" + element[cle]);
if (cle === "Name") {
infDb.Name = element[cle];
}
if (cle === "Qte") {
infDb.Qte = element[cle];
}
if (cle === "Marque") {
infDb.Marque = element[cle];
}
if (cle === "Surv") {
infDb.Surv = element[cle];
}
if (cle === "Checked") {
infDb.Checked = element[cle];
}
}
console.log("valeur :" + infDb.Name);
infVal2.push(infDb);
})
return resolve();
});
}
我首先直接进行了控制台测试:
谢谢您的帮助。
答案 0 :(得分:1)
对象通过引用传递。这意味着对象数组中的每个对象都指向同一对象。修改同一对象后,引用该对象的所有对象也会被修改。
您可以使用new Object关键字或Object.assign方法