我需要计算地图中特定字段的总数
{agent.reviews.map((a, i) => {
return (
<p style={{fontSize: 15}} key={a.id}>Knowledge Rating:
{a.local_knowledge_rating}</p>
)
})}
返回
Knowledge Rating: 1
Knowledge Rating: 2
但是我需要实现的是获取总数
Knowledge Rating: 3
有什么想法吗?
"users": [
{
"name": "someee",
"reviews": [
{
"id": 1,
"local_knowledge_rating": 1,
},
{
"id": 2,
"local_knowledge_rating": 2,
}
],
}
]
答案 0 :(得分:0)
您可以尝试用lodash来求和:https://lodash.com/docs/4.17.11#sumBy
答案 1 :(得分:0)
您可以执行以下操作
在render外部声明下面的方法,并将评论数组作为参数传递给它
以下方法将汇总每个用户的评分
customer
还有许多其他方法可以实现相同目的。以上方法就是其中一种
答案 2 :(得分:0)
renderKnowledgeRating() {
const sum = agent.reviews.reduce(function(a, b) { return a. local_knowledge_rating + b. local_knowledge_rating; }, 0)
return (
<p style={{fontSize: 15}}>Knowledge Rating: {sum}</p>
)
}
{this.renderKnowledgeRating()}
要增强可读性,请将该部分提取到另一种方法renderKnowledgeRating
中。而不是使用map
并不能真正解决您的情况,而是以不同的方式处理计算并返回单个组件
答案 3 :(得分:-1)
根据建议尝试以下操作:
function getSum(total, num) {
return total + num.local_knowledge_rating;
}
{agent.reviews.map((a, i) => {
return (
<p style={{fontSize: 15}} key={a.id}>Knowledge Rating:
{a.reduce(getSum)}</p>
)
})}