首页 > 解决方案 > 计算 JSON 对象中的多个值并打印到屏幕

问题描述

我一直在网上搜索这个,似乎只能找到Object.keys(obj).length计算 JSON 长度的那个。我正在寻找遍历 JSON 并计算相同的值。在 JSON 对象数组中。

[
    {
        "name": "Bob",
        "age": 36
    },
    {
        "name": "Billy",
        "age": 18
    },
    {
        "name": "Bob",
        "age": 45
    }
]

例如,我想数一下Bob有多少。然后我想像这样输出到一个组件。

There were 2 Bob

如何做到这一点?在某些情况下,我会知道例如只能说 4 个值。SITE、MOBILE、CTV、VIDEO 等,我认为收集它们并计算它们比计算随机结果更容易。

标签: javascriptjson

解决方案


const input = [
    {
        "name": "Bob",
        "age": 36
    },
    {
        "name": "Billy",
        "age": 18
    },
    {
        "name": "Bob",
        "age": 45
    }
]

let sums = input.reduce((a, r) => {
  a[r.name] ??= 0
  a[r.name] ++
  return a
}, {})

console.log(sums)

现在使用sums变量以您喜欢的任何形式打印数据。


推荐阅读