You need to enable JavaScript to run this app. JavaScript统计数组字符串出现次数并生成指定格式结果
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript统计数组字符串出现次数并生成指定格式结果

核心串提取与计数功能实现

实现逻辑

  • 基于现有核心串提取逻辑,新增计数器存储结构,无需额外多轮遍历
  • 使用普通对象作为计数器,读取性能优于复杂Map结构
  • 最终遍历计数器生成符合格式要求的结果数组,保留原数组中核心串的首次出现顺序

完整可运行代码

var folders = ["a-x-y_1", "b+x+y_1", "b+x+y_3", "b+x+y_2", "c_x_y_1", "c_x_y_2", "d_x_y_1"];
const countMap = {};

folders.forEach(function (item) {
  var index = item.lastIndexOf("_");
  const coreStr = item.substring(0, index);
  // 累计核心串出现次数
  countMap[coreStr] = (countMap[coreStr] || 0) + 1;
});

// 生成目标格式结果数组
const finalResult = Object.entries(countMap).map(function(item) {
  return item[0] + "~" + item[1];
});

console.log(finalResult);

输出验证

代码执行后,finalResult的输出值为:

["a-x-y~1", "b+x+y~3", "c_x_y~2", "d_x_y~1"]

完全匹配预期格式要求。

低版本环境兼容写法

如果运行环境不支持Object.entries等ES6语法,可以替换结果生成部分为兼容实现:

const finalResult = [];
for (let coreStr in countMap) {
  // 过滤对象原型链上的继承属性
  if (countMap.hasOwnProperty(coreStr)) {
    finalResult.push(coreStr + "~" + countMap[coreStr]);
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.28 17:06:08