// 方法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