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

如何将JS用户数组按状态聚合为指定的文本格式?

问题分析与解决方法

你的现有代码问题在于:直接遍历每个用户对象,每次都单独输出一行状态: 用户名,没有对相同状态的用户名做聚合处理,所以会重复输出相同状态的行。

正确实现步骤:

  1. 先将用户数组按status分组,把同一状态下的用户名收集到一个数组里
  2. 遍历分组后的结果,拼接成目标格式的文本

完整代码实现:

const user = [
  { status: "busy", username: "admin1"},
  { status: "busy", username: "admin2"},
  { status: "busy", username: "admin3"},
  { status: "sleep", username: "admin0"},
]

// 按状态分组
const groupedUsers = user.reduce((acc, current) => {
  if (!acc[current.status]) {
    acc[current.status] = []
  }
  acc[current.status].push(current.username)
  return acc
}, {})

// 生成目标文本
let text = ``
for (const status in groupedUsers) {
  text += `${status}: ${groupedUsers[status].join(',')},\n`
}

console.log(text)

输出结果:

busy: admin1,admin2,admin3,
sleep: admin0,

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 06:10:33