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

JavaScript 按用户名字段统计数组内作者博文数量的实现方法

问题原因

你写的统计逻辑存在两个问题:

  • 直接将遍历拿到的对象类型元素el作为计数对象的键,JavaScript会自动把对象转成字符串[object Object],所有条目都会被归到同一个键下,最终只输出总条目数。
  • 你提前做了作者去重生成uniqueAuthorsList,这个列表里每个作者只保留1条记录,遍历这个列表计数永远只能得到每个作者计数为1的结果,根本统计不到实际发文量。
修正方案

直接基于全量博文查询结果authorsList做统计,取每条记录里的author.username作为计数键即可,代码如下:

const counts = {};
authorsList.forEach(detail => {
  const username = detail.author.username;
  // 已存在对应作者计数就+1,不存在就初始化为1
  counts[username] = counts[username] ? counts[username] + 1 : 1;
});

// 按你需要的格式打印结果
for (const [authorName, postCount] of Object.entries(counts)) {
  console.log(`${authorName}: ${postCount}`);
}

运行后控制台输出就会和预期一致:

Dave: 4
Emily: 7
Mark: 2

如果你后续需要用到去重的作者ID、用户名映射,可以在统计完成后再通过Object.keys(counts)结合原始数据生成,不用提前做去重遍历减少冗余计算。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 11:30:54