请求帮助,我在向一个数组内推送数据时,不管push了多少次,最后输出数组,数组里的值都变成最后一次push的值,并且尝试过每次push为数组新建一个对象,但都无法解决问题,这个projectIndex是根据我每次进方法传值变得,目的是让每次的projectData变化然后push到数组里,但是我在第二次进入这个方法i= 1时注释掉可里面的push打印数组发现数组的第一个值已经变化为我第二次传值进方法后的projectData 了
if(this.i==0){//我再外部设了一个全部变量i= 0 每次进入这个方法执行后i++
console.log(this.i,'i是几了');
let chipNum=e[0].value
let hidx = this.equestrianionform.horseList.findIndex(item=>item.horseChipNum == chipNum);
let horseData = this.equestrianionform.horseList[hidx]
let projectId =this.tempChitemId
let projectIndex = this.obstaclelist.findIndex(item=>item.id == projectId);
let projectData = this.obstaclelist[projectIndex]//这个projectIndex是根据我每次进方法传值变得,目的是让每次的projectData变化然后push到数组里,但是我在第二次进入这个方法i= 1时注释掉可里面的push打印数组发现数组的第一个值已经变化为我第二次传值进方法后的projectData 了
horseData.auditStatus = 0;
horseData.projectInfo = projectData;
console.log('推送什么',horseData);
this.equestrianionform.groupSpareHorse.push(horseData)
// this.equestrianionform.groupSpareHorse[this.i]=horseData
// console.log(this.equestrianionform.groupSpareHorse,'meiyouma ');
// this.equestrianionform.groupSpareHorse[this.i].projectInfo = projectData
}
else if (this.i ==1){
console.log(this.i,'i是几了');
console.log(this.equestrianionform.groupSpareHorse,'meiyouma ');
let chipNum=e[0].value
let hidx = this.equestrianionform.horseList.findIndex(item=>item.horseChipNum == chipNum);
let horseData1 = this.equestrianionform.horseList[hidx]
console.log(this.equestrianionform.groupSpareHorse,'meiyouma ');
let projectId =this.tempChitemId
let projectIndex = this.obstaclelist.findIndex(item=>item.id == projectId);
let projectData1 = this.obstaclelist[projectIndex]
console.log(this.equestrianionform.groupSpareHorse,'meiyouma ');
horseData1.auditStatus = 0;
horseData1.projectInfo = projectData1;
console.log(this.equestrianionform.groupSpareHorse,'meiyouma ');
let arr = {}
arr = horseData1
console.log('推送什么',arr);
//this.equestrianionform.groupSpareHorse.push(arr)我注释调这个push是想看数组里的值什么时候变得
// this.equestrianionform.groupSpareHorse[this.i]=horseData1
// this.equestrianionform.groupSpareHorse[this.i].projectInfo = projectData1
}
else if(this.i==2){
console.log(this.i,'i是几了');
let chipNum=e[0].value
let hidx = this.equestrianionform.horseList.findIndex(item=>item.horseChipNum == chipNum);
let horseData = this.equestrianionform.horseList[hidx]
let projectId =this.tempChitemId
let projectIndex = this.obstaclelist.findIndex(item=>item.id == projectId);
let projectData = this.obstaclelist[projectIndex]
horseData.auditStatus = 0;
horseData.projectInfo = projectData;
let avv = {}
avv= horseData
console.log('推送什么',avv);
//this.equestrianionform.groupSpareHorse.push(avv)
}
//添加到报名信息
//this.equestrianionform.groupSpareHorse.push(horseData)
console.log("=====================>")
console.log(this.equestrianionform.groupSpareHorse)
console.log("=====================>")
this.i++
第二次进入方法时我已经注释了push数组里也只有一条数据,但是已经更改了之前push 到数组里的数据,不清楚什么原因,代码别的地方没有对equestrianionform.groupSpareHorse这个数组进行过更改操作,所以一直找不到问题在哪,请各位指点一下
你仔细查找看下有没有哪个地方对数组进行或者引用之后修改了。
我对该页面检索了equestrianionform.groupSpareHorse这个数组,只有一处对这个数组有更改操作,但是一直都没有进到那个方法中,调试控制台也没有打印那个方法里的consolelog ,其余都没有对这个equestrianionform.groupSpareHorse数组有更改操作了
不知道你这个问题是否已经解决, 如果还没有解决的话: