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

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

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

{
  "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的最佳方法是什么?

javascript typescript
2个回答
3
投票

您可以使用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);

0
投票

[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))
© www.soinside.com 2019 - 2024. All rights reserved.