Javascript 不能将对象添加到表中

Javascript 不能将对象添加到表中,javascript,php,node.js,Javascript,Php,Node.js,各位晚上好, 作为Javascript培训的一部分,我必须展示一个项目。在开发过程中,我浏览一个包含SQL select查询所有行的对象数组。然后 在表格的每个元素上使用循环,然后在每个键上使用循环来填充毛发并测量我的对象infDb 在处理第二个元件之前,直到所有部件都正确。我在表infVal2 所以,问题是,在第二次推加法之后,对象的最后一个值会影响整个数组 我有一张空桌子: var infVal2 = [] 和一个对象: var infDb = { "Name": "",

各位晚上好,

作为Javascript培训的一部分,我必须展示一个项目。在开发过程中,我浏览一个包含SQL select查询所有行的对象数组。然后 在表格的每个元素上使用循环,然后在每个键上使用循环来填充毛发并测量我的对象
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();
    });

}
我首先直接做了控制台测试:

  • 在一个简单的表上,通过从循环中添加一个简单的值==>它可以工作
  • 始终从循环开始,但通过添加对象==>它不再工作

感谢您的帮助。

对象是通过引用传递的。也就是说,对象数组中的每个对象都指向同一个对象。修改同一对象时,引用该对象的所有对象也会被修改

您可以使用关键字或方法