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

JavaScript统计对象数组指定字段值出现次数(无硬编码)实现咨询

解决方案

实现代码

// 原始输入数组
const json_output = [
  {
    "id": "1",
    "Device Name": "device3",
    "Software Name": "windows"
  },
  {
    "id": "2",
    "Device Name": "device6",
    "Software Name": "windows"
  },
  {
    "id": "3",
    "Device Name": "device11",
    "Software Name": "windows"
  },
  {
    "id": "4",
    "Device Name": "device11",
    "Software Name": "windows_11"
  },
  {
    "id": "5",
    "Device Name": "device11",
    "Software Name": "linux_sys"
  }
];

const new_arr = []; // 存储去重后的软件名
const countMap = {}; // 临时存储每个软件名的计数

for (let i = 0; i < json_output.length; i++) {
  // 按需求取对象索引为2的第三个元素值,若后续对象字段顺序可能变动,推荐使用更稳妥的取值方式:json_output[i]["Software Name"]
  const softwareName = Object.values(json_output[i])[2];

  // 检查值不存在则追加到new_arr
  if (!new_arr.includes(softwareName)) {
    new_arr.push(softwareName);
  }

  // 累计计数
  countMap[softwareName] = (countMap[softwareName] || 0) + 1;
}

// 转换为要求的统计结果格式
const software_name_count = Object.entries(countMap).map(([name, count]) => {
  return { [name]: String(count) };
});

// 可直接打印查看结果
console.log(software_name_count);

输出结果

运行上述代码后得到的software_name_count完全匹配要求的格式:

[
  {
    "windows": "3"
  },
  {
    "windows_11": "1"
  },
  {
    "linux_sys": "1"
  }
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 11:30:01