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

问题描述 投票:1回答:1

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

例:

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

添加bar.userScorefoo.userScore的最佳/最佳性能是什么,而不必每次都写出完整的JSON路由? (我为此写的组件有大约40多个这样的分数,所以在计算中做死记硬背似乎有点奇怪)

有没有办法访问这些相同的属性,如*.userScore

谢谢阅读!

javascript json vue.js addition
1个回答
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)
© www.soinside.com 2019 - 2024. All rights reserved.