美文网首页
绝妙的函数:字符串去重

绝妙的函数:字符串去重

作者: 喜欢唱歌的小狮子 | 来源:发表于2018-11-01 21:54 被阅读0次

    Awesome Function: dedulpicate

    在线演示

    原始数据:'我我们都是勤勤劳的小蜜蜂蜂蜜我我们都是勤勤劳的...'

    经过较大数据的测试,方法一和方法三的性能最好,不相上下,可见正则的威力还是很大的。
    另外在正则方法的实现上,eval函数可谓是最大功臣,所以此函数并不是一无是处的。

    方法一:利用ES6原生Set API

    const deduplicate1 = string => {
        let result = Array.from(new Set(string.split(''))).join('')
        return result
    }
    

    方法二:逐一取出字符串首元素同时过滤相同元素

    const deduplicate2 = string => {
        let result = []
        let arr = string.split('')
        while (arr.length) {
            let current = arr.shift()
            result.push(current)
            arr = arr.filter(item => item !== current)
        }
        return result.join('')
    }
    

    方法三:逐一取出字符串首元素同时过滤相同元素正则版

    const deduplicate3 = string => {
        let s = string
        let result = []
        let current = ''
        while (s.length) {
            current = s[0]     
            result.push(current)   
            s = s.slice(1)
            s = s.replace(eval(`/${current}/g`), '')
        }
        return result.join('')
    }
    

    相关文章

      网友评论

          本文标题:绝妙的函数:字符串去重

          本文链接:https://www.haomeiwen.com/subject/aoefxqtx.html