vue关于中数组的问题
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 的写法相当于:
const temp = [];for (const item of res.data) {
temp.push({
// ...item,
value: item.xmmc,
label: item.xmmc
})
}
this.xmmcList = temp;
所以,如果迭代函数返回的子项与push
接收的参数一样的话,两种方法的结果是等效的。
但是你的代码里有一个地方不一样,就是我示例代码里注释掉的那一句,你可以试着在 map
的迭代函数里加上这一句(注意去掉注释),使它保持与for...of
写法的结果一致。
解决了这个问题再看其他地方。
回答:
没觉得有什么问题啊? https://codepen.io/pengbouest...
以上是 vue关于中数组的问题 的全部内容, 来源链接: utcz.com/p/936343.html