在VueJS组件中使用相同的键将嵌套的data()对象值加在一起

时间:2018-09-13 03:50:42

标签: javascript json vue.js addition

我有一堆具有相同键的值,这些值嵌套在我的VueJS组件的data() {}返回内的相邻对象中。

示例:

data() { 
  return {
     foo: {
         userScore: 10,
         computerScore: 5
     },
     bar: {
         userScore: 22,
         computerScore: 100
     }
  }
}

添加bar.userScorefoo.userScore而不必每次都写出完整JSON路由的最佳/最有效方法是什么? (我为此编写的组件具有大约40+的分数,因此在计算中进行死记加法似乎有点奇怪)

是否可以访问这些相同的属性,例如*.userScore

感谢阅读!

1 个答案:

答案 0 :(得分:2)

您可以reduce进行汇总:

const sum = Object.keys(this.$data).reduce((sum, key) => {
  if (this.$data[key].hasOwnProperty('userScore')) {
    return (sum + this.$data[key].userScore)
  }
  return sum
}, 0)