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

如何统计对象数组中字符串化数组元素的出现次数

统计字符串化数组元素的出现次数

输入数据

[
  {
    entry: 1,
    answer: "[\"aaa\",\"bbb\"]"
  },
  {
    entry: 2,
    answer: "[\"ccc\",\"bbb\"]"
  },
  {
    entry: 3,
    answer: "[\"ccc\",\"bbb\"]"
  }
]

期望结果

{
  "aaa": 1,
  "ccc": 2,
  "bbb": 3
}

原代码问题

你当前的代码直接将整个字符串化的数组作为键统计,只能得到不同字符串数组的出现次数,无法统计数组内部元素的频次。

修正后的代码

const countAnswers = (ans) => {
  return ans.reduce((obj, v) => {
    // 将字符串化的数组解析为真实数组
    const parsedAnswers = JSON.parse(v.answer);
    // 遍历解析后的数组,逐个统计元素出现次数
    parsedAnswers.forEach(item => {
      obj[item] = (obj[item] || 0) + 1;
    });
    return obj;
  }, {});
};

关键逻辑说明

  1. 解析字符串数组:用JSON.parse()把v.answer的字符串内容转换成可操作的JavaScript数组。
  2. 遍历统计元素:对解析后的数组遍历,针对每个元素更新计数对象——元素已存在则计数+1,不存在则初始化为1。

测试验证

调用countAnswers(你的输入数组),会直接返回你期望的统计结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 14:10:35