public xmmcList: any = []
public async getProjectName(uid: any) {
const res: any = await Service.getProNameApi({ uuid: uid })
if (res && res.code === 0 && res.data.length) {
// for of的写法跟下面map的写法有什么区别吗?
// 为什么push可以显示数据
// 下面的map返回值就不行
this.xmmcList.length = 0
for (const item of res.data) {
this.xmmcList.push({
...item,
value: item.xmmc,
label: item.xmmc
})
}
// this.xmmcList = res.data.map((item: any) => {
// return {
// ...item,
// label: item.xmmc,
// value: item.xmmc
// }
// })
console.log(this.xmmcList)
// console.log(this.tableData.columns[3].editRender.options = this.xmmcList)
}
}
map 的写法相当于:
所以,如果迭代函数返回的子项与
push
接收的参数一样的话,两种方法的结果是等效的。但是你的代码里有一个地方不一样,就是我示例代码里注释掉的那一句,你可以试着在
map
的迭代函数里加上这一句(注意去掉注释),使它保持与for...of
写法的结果一致。解决了这个问题再看其他地方。