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

JS函数问题:数组转字符串后无法去除重复字符,求解决方案

问题分析与解决

你的代码里的正则/(.)\1+/g只能匹配连续重复的字符,但数组转成的字符串中重复字符是分散的(比如示例里的[4,7,5,7]转成"4757",两个7不连续),所以正则起不到去重作用,返回的还是原字符串。

下面是两种可行的去重方案:

方案一:利用Set自动去重(简洁高效)

Set会自动过滤重复元素,且保留元素的插入顺序,适合这种场景:

function minValue(values){
  // 把数组每个元素转成字符串,用Set去重后再拼接成结果
  return [...new Set(values.map(item => item.toString()))].join('');
}
console.log(minValue([4, 7, 5, 7])); // 输出 "475"

方案二:手动遍历去重(更灵活,适合自定义规则)

如果需要更精细的控制,可以手动遍历字符,记录已出现的内容:

function minValue(values){
  const str = values.toString().split(",").join("");
  const seen = new Set();
  let result = "";
  for (const char of str) {
    if (!seen.has(char)) {
      seen.add(char);
      result += char;
    }
  }
  return result;
}
console.log(minValue([4, 7, 5, 7])); // 输出 "475"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 05:36:17