我有一个包含以下代码的函数:JavaScript数组项被覆盖
stores = [];
console.log('in stores d.length is ', districts.length);
districts.forEach(function (dis) {
dis.store.forEach(function(store) {
store.structure = dis.structure;
store.structure.dis = dis.district_nbr;
store.structure.sto = store.store_nbr;
//store.message = getMessage(store.structure);
console.log('store st is ', store.structure);
stores.push(store);
});
});
stores.forEach(function (s) {
console.log("after set Master this is stores ", s.structure);
})
作为环路去,我初始化为每个商店对象structure
开始作为从父具有DIS对象的结构几个领域,并已被验证为正确的。然后我在结构对象中添加一些额外的字段来计算区号和存储号。每个dis对象都有一组独特的商店。
嵌套for循环中的console.log
显示商店的正确结构。但是,当我在事实后打印这些商品时,商店的所有商品都有循环中的最终区号和循环中的最终商店编号,而不是各自的正确值。
问题:在Array.push()中发生了什么,我没有意识到通过重击之外的东西?我认为我真正的问题是我错过了什么?