原始数据结构:
"result":[
{
"id": 1,
"creatorId": 1,
"categories": [
],
"name": "first exam repo",
"description": "just for test",
"createTime": "2020-02-13 14:44:13",
"personal": false,
"exams": null
},
{
"id": 40,
"creatorId": 4,
"categories": [
{
"id": 5,
"creatorId": 1,
"name": "标签1",
"description": "",
"createTime": "2020-02-16 20:01:25"
},
{
"id": 6,
"creatorId": 1,
"name": "标签2",
"description": "",
"createTime": "2020-02-16 20:01:25"
},
{
"id": 7,
"creatorId": 1,
"name": "标签3",
"description": "",
"createTime": "2020-02-16 20:01:25"
},
{
"id": 10,
"creatorId": 4,
"name": "这种",
"description": "",
"createTime": "2020-02-16 21:50:15"
}
],
"name": "这种",
"description": "这种",
"createTime": "2020-02-16 21:50:15",
"personal": false,
"exams": null
}
]
目标是:{id,name,description,categories.name,createTime}
目标是:{id,name,description,categories.name,createTime}
categories.name的值无法直接获取到!
因为其他都是字符串,而categories是数组!
所以直接打印就是未定义!
解决办法,添加一个方法,取出数组里面的name:
// 取出数组的某个值
extractCategories(originCategories) {
let categories = [];
//取出值
for (let i = 0; i < originCategories.length; i++) {
categories[i] = originCategories[i].name;
}
return categories.join(',');
},
listpc() {
this.$axios.get("/exam/listPublicRepo").then(response => {
console.log(response.data.result);
if (response.data.result) {
// this.tableData = response.data.result;
var arr = response.data.result;
this.tableData = arr.map(item => {
return {
id: item.id,
name: item.name,
description: item.description,
categories: this.extractCategories(item.categories),
createTime: item.createTime,
};
然后就可以显示成功了!