数组正在覆盖先前的对象

时间:2017-11-21 11:39:05

标签: javascript arrays xml

我正在使用我的XML数据创建一个对象并推入数组。但是当它从方法中出来时,我可以看到所有数组值都是第一个的副本。任何人都可以帮助我。

这是我的代码:

var obj = {};
for(var i = 1; i < myData.length; i++) {

    var myDAtt = myData[i].getElementsByTagName('D');

    for(var j = 0; j < myDAtt.length; j++){
        obj[myDAtt[j].getAttribute('dataIndex')] = myDAtt[j].getAttribute('V')
    }

    me.Rec.push(obj);
}

1 个答案:

答案 0 :(得分:3)

您需要在顶级for(var i = 1; i < myData.length; i++) { var obj = {}; var myDAtt = myData[i].getElementsByTagName('D'); for(var j = 0; j < myDAtt.length; j++) { obj[myDAtt[j].getAttribute('dataIndex')] = myDAtt[j].getAttribute('V') } me.Rec.push(obj); } 循环中创建一个新对象。在您的情况下,您只有一个变量,您要为其添加属性并将其推入数组中作为参考。所以最后你有一个大对象,并将它的引用推送到数组中多次。

swiftmailer:
    transport: 'gmail'
    username: '%mailer_user%'
    password: '%mailer_password%'