JavaScript - 获取具有特定值的对象计数

Key*_*r K 2 javascript arrays javascript-objects

我已经提到了下面列出的这些问题,但没有帮助我。

  1. 计算数组元素的出现次数/频率
  2. 计算内部二维数组的值 - javascript
  3. 计算多维数组中的元素

我想从具有特定值的对象中获取计数。例如,我有这个数组列表,

var testData = [
  {
    "issue_type": "Warning",
    "created_date": "2019-05-13T13:43:16.437Z",
  },
  {
    "issue_type": "Warning",
    "created_date": "2019-05-13T13:45:16.330Z",
  },
  {
    "issue_type": "Alert",
    "created_date": "2019-05-13T13:43:16.437Z",
  },
  {
    "issue_type": "Alert",
    "created_date": "2019-05-13T13:45:16.330Z",
  }
]
Run Code Online (Sandbox Code Playgroud)

我想计算有多少带有键的对象"issue_type"="Warning"。

我试过这个循环,但这不是我要找的,

var counts = {};
for (var i = 0; i < arr.length; i++) {
    var num = arr[i];
    counts[num] = counts[num] ? counts[num] + 1 : 1;
}
console.log(count['issue_type']);
Run Code Online (Sandbox Code Playgroud)

请给我建议出路。

Mor*_*ler 8

您可以简单地使用过滤器。

console.log (
  testData.filter (({issue_type}) => issue_type === 'Warning').length
)
Run Code Online (Sandbox Code Playgroud)
<script>var testData = [
  {
    "issue_type": "Warning",
    "created_date": "2019-05-13T13:43:16.437Z",
  },
  {
    "issue_type": "Warning",
    "created_date": "2019-05-13T13:45:16.330Z",
  },
  {
    "issue_type": "Alert",
    "created_date": "2019-05-13T13:43:16.437Z",
  },
  {
    "issue_type": "Alert",
    "created_date": "2019-05-13T13:45:16.330Z",
  }
]</script>
Run Code Online (Sandbox Code Playgroud)


Nin*_*olz 5

您可以将该值作为计数的键。

var testData = [{ issue_type: "Warning", created_date: "2019-05-13T13:43:16.437Z" }, { issue_type: "Warning", created_date: "2019-05-13T13:45:16.330Z" }, { issue_type: "Alert", created_date: "2019-05-13T13:43:16.437Z" }, { issue_type: "Alert", created_date: "2019-05-13T13:45:16.330Z" }],
    counts = testData.reduce((c, { issue_type: key }) => (c[key] = (c[key] || 0) + 1, c), {});

console.log(counts);
Run Code Online (Sandbox Code Playgroud)

  • 我喜欢您如何按问题类型对数据进行分组*+1*。 (2认同)