【问题标题】:Array is overwriting previous object数组正在覆盖先前的对象
【发布时间】:2017-11-21 11:39:04
【问题描述】:

我正在使用我的 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);
}

【问题讨论】:

  • var obj = {}移动到for(var i=1; i&lt;myData.length;i++){

标签: javascript arrays xml


【解决方案1】:

您需要在顶层for 循环中创建一个新对象。在您的情况下,您只有一个变量,您要为其添加属性并将其推入它所引用的数组中。所以最后你有一个大对象并将它的引用多次推送到数组中。

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);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-22
    • 2021-09-05
    • 1970-01-01
    • 2018-01-20
    • 1970-01-01
    • 2015-01-20
    相关资源
    最近更新 更多