You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何统计JSON对象数组中不同siteId值的出现次数

实现方案

核心思路为单次遍历+哈希表计数,无需单独做提取、去重、逐个统计的多步操作,时间复杂度为O(n),仅需遍历一次数组即可完成统计。

JavaScript 实现

// 假设你的JSON数组为data
const siteCount = data.reduce((countMap, current) => {
  const siteId = current.resourceAttributes.siteId
  countMap[siteId] = (countMap[siteId] || 0) + 1
  return countMap
}, {})

// 按要求格式输出
Object.entries(siteCount).forEach(([siteId, num]) => {
  console.log(`SiteId${siteId} occurance ${num}`)
})

Python 实现

借助标准库collections.Counter可以做到一行完成计数:

from collections import Counter

# 假设你的JSON数组为data
site_count = Counter(item["resourceAttributes"]["siteId"] for item in data)

# 按要求格式输出
for site_id, cnt in site_count.items():
    print(f"SiteId{site_id} occurance {cnt}")

如果不想引入额外依赖,也可以用普通字典实现:

site_count = {}
for item in data:
    site_id = item["resourceAttributes"]["siteId"]
    site_count[site_id] = site_count.get(site_id, 0) + 1

如果你的数据中存在部分对象没有resourceAttributes或者siteId字段的情况,可以在计数前加一层存在性判断,跳过无效数据即可。

内容的提问来源于stack exchange,提问作者newbir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 05:24:04