字符串去重

1,044 阅读1分钟

给定一个字符串 11223344,返回去重后的结果。 1234

方法一

先定义一个空数组 arr, 用来存放去重后的数据, 然后开始遍历字符串的每一个字符, 在 arr 中检查当前字符

  • 如果 arr 中没有当前字符, 则把当前字符添加到 arr 中 遍历结束之后, arr 中的数据就已经去重了, 最后再把数组转成字符串。
function uniqueu(str: string) {
    const arr = []
    for(let c of str) {
        if(!arr.includes(c)) {
            arr.push(c)
        }
    }
    return arr.join('');
}

方法二

还可以使用 ES6 的 Set 类, 用 Set 值的唯一性去重。 先通过解构赋值把 str 转成数组, 再把数组成 set数组,这个时候 set数组 内的数据已经去重了, 然后把 set数组 转成 标准数组, 再通过 join 方法转成字符串。

function uniqueu(str: string) {
    return [...new Set([...str])].join();
}

总结

  • 方法一是使用数组查找的方式去重
  • 方法二是使用 Set 的唯一去重 这两种方法原理都可以实现数组去重, 数组去重和字符串去重都大同小异。