数据:
{
"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"
},
我目前正在努力获取contextTag valueLabels:
this.props.reviewData.reviews.map(
(o) => {
return o.contextTag && o.contextTag.valueLabel ? o.contextTag.valueLabel.trim() : '';
}
)
这是标签:
this.props.reviewData.reviews.map(
(o) => {
return o.tags && o.tags.value ? o.tags.value.trim() : '';
}
)
但它又回来了。如何循环标记以获取每个值?
答案 0 :(得分: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.
您的代码没有返回您想要的内容,因为tags属性是一个对象数组,因此要获取标记值,您必须像我上面那样映射它。
希望这会有所帮助。
答案 1 :(得分:0)
你也必须迭代标签数组,你可以在map函数
中完成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() : '';
}
)