2016-11-30 3 views
0

데이터 반환 :원주민 반작용 - 루프를 객체의 배열을 통해 값

this.props.reviewData.reviews.map(
       (o) => { 
        return o.tags && o.tags.value ? o.tags.value.trim() : ''; 
       } 
      ) 
: 나는 현재이 contextTag valueLabels을 얻기 위해 일했다

{ 
       "contextTag": { 
        "value": "Bittersweet", 
        "valueLabel": "Bittersweet" 
       }, 
       "tags": [ 
        { 
         "name": "tag", 
         "value": "Creamy" 
        }, 
        { 
         "name": "tag", 
         "value": "Colorful" 
        }, 
        { 
         "name": "tag", 
         "value": "Bright" 
        } 
       ], 
       "rating": 5, 
       "userNickName": "HelloGames", 
       "userLocation": "UK", 
       "title": "Great!", 
       "reviewText": "Yada yada yada yada", 
       "submissionTime": "30 Nov 16" 
}, 

: 태그

this.props.reviewData.reviews.map(
       (o) => { 
        return o.contextTag && o.contextTag.valueLabel ? o.contextTag.valueLabel.trim() : ''; 
       } 
      ) 

그리고이

하지만 다시 비어 있습니다. 각 값을 얻기 위해 태그를 반복하려면 어떻게해야합니까?

답변

0

태그를 캐시 한 다음 값을 가져올 수 있습니다. 아래처럼 :

const tags = this.props.reviewData.reviews.tags; 
const tags_values = (tags ? tags.map((tag) => (tag.value ? tag.value : '') : []); // this an array of the tags values. 

코드는 태그 속성 객체의 배열이기 때문에 당신은 그래서 당신은 내가 위에서처럼 그 위에 매핑해야 태그 값을 얻기 위해, 원하는 반환하지 않습니다.

희망이 도움이되었습니다.

0

당신은 당신이지도 함수 내에서 그것을 할 수 있습니다,뿐만 아니라 태그의 배열을 반복해야한다

const allTags = []; 
this.props.reviewData.reviews.map(
       (o) => { 
        if(o.tags) 
         for(i = 0; i < o.tags.length; i++) allTags.push(o.tags[i].value ? o.tags[i].value.trim() : ''); 

        return o.contextTag && o.contextTag.valueLabel ? o.contextTag.valueLabel.trim() : ''; 
       } 
      ) 
관련 문제