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

如何在JavaScript中统计数组每个元素的累计出现次第次数

实现方法

你之前的写法只会输出全局计数总览,没有保留原数组的位置信息。要得到和原数组位置一一对应的计数结果,可参考以下两种方案:

方案1:使用map遍历(更直观)

在遍历过程中用额外对象记录每个元素的累计出现次数,每次遍历直接返回当前元素对应的次数字符串即可:

let arr = ['good','is','good']
const countMap = {}
const result = arr.map(item => {
  countMap[item] = (countMap[item] || 0) + 1
  return `${item}:${countMap[item]}`
})

执行后result的值为['good:1', 'is:1', 'good:2'],完全符合需求。

方案2:使用reduce实现

如果你希望只用reduce完成,可以把累计值设置为同时包含计数映射和结果数组的对象:

let arr = ['good','is','good']
const result = arr.reduce((acc, curr) => {
  acc.countMap[curr] = (acc.countMap[curr] || 0) + 1
  acc.result.push(`${curr}:${acc.countMap[curr]}`)
  return acc
}, { countMap: {}, result: [] }).result

得到的结果和方案1完全一致。


内容的提问来源于stack exchange,提问作者田伯清

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 09:45:05