js從對象裏面獲取數組的部分值

原始數據結構:
"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是數組!

所以直接打印就是未定義!

 

image.png

解決辦法,添加一個方法,取出數組裏面的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,
                            };

然後就可以顯示成功了!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章