在es6中计算内部地图

时间:2019-01-22 03:00:38

标签: reactjs ecmascript-6

我需要计算地图中特定字段的总数

 {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,
             }
         ],
         }
        ]

4 个答案:

答案 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>
   )
})}