字符串去重

119 阅读1分钟
let str = 'abfbfbbbghybbbb'

直接操作字符串

[].filter.call(str,(s,i,o)=>o.indexOf(s)==i).join('')

字符串转数组
let arr = str.split("")
// let arr = Array.from(str)

常规方法

let newarr2 = [];
arr.sort(); //先将数组排序
newarr2.push(arr[0]);
for (var i = 0; i < arr.length; i++) {
 if (arr[i] !== arr[i + 1]) {
    //判断后一项 是否跟前一项一样 将后一项放入新数组
    newarr2.push(arr[i]);
 }
};

ES6

new Set方法

let newArr = Array.from(new Set(str)
let newArr = [... new Set(str)]

reduce

let newArr = arr.reduce((pre,cur) => {
  if(!pre.includes(cur)){
     return pre.concat(cur)
  }else{
     return pre
  }
}
数组变字符串
str = arr.join("")