Angular2:迭代得到我决定的数组

时间:2017-05-01 13:49:32

标签: arrays angular ionic2

我需要迭代json对象和数组,对于特定的事情,我需要只返回带有我的评论的数组。

我从我的api得到了端点:

{total_reviews: 206, average_score: 4.2,…}
average_score
:
4.2
reviews
:
[{meta_id: "259", rating_post_id: "5", rating_user_id: "1", rating_user_name: "christophe",…},…]
total_reviews
:
206

在我的角度服务中,我得到了这样的端点:

getReviewsByPostId(paramsObj) {
    let params = this.util.transformRequest(paramsObj);
    return this.http.get(this.wpApiURL + '/reviews?' + params)
        .map(res => {
            this.reviews = res.json();
            return this.reviews;
        });
}

我也有一个组件:

loadReviews(postId) {
    this.wp.getReviewsByPostId({post: postId}).subscribe(
        data => {
            console.log(data);
            this.reviews = data;
        },
        error => {}            
    );
}

在我的角度应用程序中,返回的方法是什么?而不是total_reviews和average_score

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以直接访问"评论"来自你的json响应的值 我不确定确切的语法,但尝试以下

之一
    res.json().reviews 

    res.reviews

你可以选择运行一个' foreach'关于您的JSON响应,只需获取您需要的特定密钥的值(在您的情况下'评论')

示例:

    getReviewsByPostId(paramsObj) {
     let params = this.util.transformRequest(paramsObj);
     return this.http.get(this.wpApiURL + '/reviews?' + params)
     .map(res => {
        this.reviews = res.json();
        angular.forEach(this.reviews,function (key,value){
        if(key==='reviews'){
        //store value in an array or any other data container
        } 
       });
       // return array/dataContainer;
    });
   }