如何获取打字稿中对象属性的总数?

时间:2019-10-17 10:26:53

标签: javascript typescript

我正在使用一个对象来存储状态,并且该对象看起来像这样:

{
  "CPC": 0,
  "NDP": 0,
  "LPC": 0,
  "GPC": 1,
  "PPC": 2
} 

所有键值都是通用类型<T>的枚举数。

假设我可以这样调用该对象:

console.log(this.optionVotes()); 
// Produces:
{  "CPC": 0,   "NDP": 0,   "LPC": 0,   "GPC": 1,   "PPC": 2 } 

从中获得价值3的最佳方法是什么?

2 个答案:

答案 0 :(得分:4)

您可以使用Object.keys()Array.prototype.reduce()

代码:

const data = {  "CPC": 0,   "NDP": 0,   "LPC": 0,   "GPC": 1,   "PPC": 2 };
const result = Object
  .keys(data)
  .reduce((a, key) => a + data[key], 0);

console.log(result);

答案 1 :(得分:2)

Objec.value(obj)将在键内返回一个值数组,并减少在reduce的回调内将每个值添加到var c计数器中的其余操作。

var foo =  {  "CPC": 0,   "NDP": 0,   "LPC": 0,   "GPC": 1,   "PPC": 2 } 
console.log(Object.values(foo).reduce((a, c) => a + c, 0))