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

如何忽略空格差异从句子数组中去除重复句子

忽略空格的字符串数组去重实现

需求背景

我们有如下示例数组:

const array = ['bic ycle drive', 'bici ycl frei', 'bicyc le dri ve', 'manace', 'bicycle drive', 'bicycle drive']

需要返回去重结果:

['bic ycle drive', 'bici ycl frei', 'manace']

去重规则:仅空格位置不同的字符串视为重复内容,重复项可任选其一保留。

实现方案

核心思路是将字符串移除所有空格后作为唯一判断标识,记录已出现的标识过滤重复项,代码如下:

function deduplicateIgnoreSpace(arr) {
  const seenKeys = new Set();
  return arr.filter(item => {
    // 移除所有空格生成判断用的唯一key
    const key = item.replace(/\s/g, '');
    if (!seenKeys.has(key)) {
      seenKeys.add(key);
      return true;
    }
    return false;
  });
}

// 测试调用
const array = ['bic ycle drive', 'bici ycl frei', 'bicyc le dri ve', 'manace', 'bicycle drive', 'bicycle drive'];
const res = deduplicateIgnoreSpace(array);
console.log(res); // 输出符合预期的结果

说明

  • 正则\s匹配所有空格字符,加g修饰符匹配全部空格,替换为空后即可消除空格位置差异带来的判断干扰
  • 采用Set存储已出现的标识,判断效率更高,整体遍历一次数组即可完成去重,时间复杂度为O(n)
  • 代码默认保留首次出现的重复项,若需要保留最后一次出现的重复项,倒序遍历数组后反转结果即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 12:54:03