我正在用我的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);
}
最佳答案
您需要在顶级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);
}
关于javascript - 数组正在覆盖先前的对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47412229/