SOURCE

// 方法1 利用key-value类型的对象存储 {e: true}
function removeDuplicateChar1(str) {
    var result = [];
    var json = {};
    for(var i = 0; i < str.length; i++) {
        var char = str[i];
        // 判断是否在对象中
        if(!json[char]) {
            json[char] = true;
            // 添加到结果数组中
            result.push(char);
        }
    }
    return result.join('');
}
console.log(removeDuplicateChar1('abcdegfaaaaaa'))

// 方法2 借助filter()和indexOf,indexOf可以找出第一次出现的索引位置
function removeDuplicateChar2(str) {
   let result = Array.prototype.filter.call(str,
   function(char, index, arr) {
    //通过index和indexOf()比较,判断是否是第一次出现的字符
    return index === arr.indexOf(char);
    })
    return result.join('');
}
var str = 'absssdfdsf';
console.log(removeDuplicateChar2(str));

// 利用es6
function removeDuplicateChar3(str) {
    let result = '';
    return result = Array.prototype.filter.call(str, (char, index, arr) => {
        return index === arr.indexOf(char);
    }).join('');
}
console.log(removeDuplicateChar3('sadsafssssddf'))

//方法3 利用es6中的Set结构,Set可以自动去重
function removeDuplicateChar4(str) {
    //字符串转成数组作为参数生成Set实例
    let set = new Set(str.split(''));
    //将set重新处理为数组,然后转换成字符串
    return [...set].join('');
}
console.log(removeDuplicateChar4('sdasfdfffff'))

console 命令行工具 X clear

                    
>
console