问题:
for循环中调用接口获取对象放到数组中,每次数组中对象的顺序都不一致
最开始打代码如下:
const dataSetList = data.setCodes.split("|");
const allDataSet = this.allDataSet
dataSetList.map((item,i) => {
allDataSet.map(setData => {
if(item === setData.code){
this.detail(setData.id)
}
})
})
async detail(id,index) {
const { code, data } = await api.detail(id);
if (code == 200) {
this.dataSet.push(data)
}
},
this.dataSet里面的数据每次顺序都不一致
解决:
遍历数据时满足条件先push一个对象,调用接口获取到数据后通过splice修改对应index 的值
const dataSetList = data.setCodes.split("|");
const allDataSet = this.allDataSet
dataSetList.map((item,i) => {
allDataSet.map(setData => {
if(item === setData.code){
this.dataSet.push({})//先push一个对象
this.detail(setData.id,i)
}
})
})
async detail(id,index) {
const { code, data } = await api.detail(id);
if (code == 200) {
this.dataSet.splice(index, 1,data)
}
},