如何删除字符串中出现多次的字符

时间:2019-05-22 13:54:34

标签: javascript

for(var i=0; i <array.length;i++){
    for(var j=1; j<=array.length;j++) 
    if(array[i]==array[j])  array.splice(j,1)
}

一直在尝试使用上面的代码,但它只会删除其他所有字符。

3 个答案:

答案 0 :(得分:3)

我的方法是将其转换为Set,然后转换为Array,然后转换为join,以获得最终的Stirng

let a = 'aaabbbcdddd';
console.log(Array.from(new Set(a)).join(''));

答案 1 :(得分:2)

利用join的唯一性,使用Spread syntaxSet...)的直接方法

let a = 'aaabbbcdddd';
console.log([...new Set(a)].join(''));

  

通过Set对象,您可以存储任何类型的唯一值

我们提供字符串(可迭代)以启动Set,该字符串将删除其中的所有重复项。然后,我们将其转换回具有Spread syntax...)的数组。最后,join将数组重新组合在一起以使其成为字符串。

答案 2 :(得分:0)

您的迭代器ij将错误地重叠。相反,您应该从j开始i+1迭代。

let str = 'the hippos are singing';
let array = [...str];
for (var i = 0; i < array.length; i++) {
  for (var j = i + 1; j <= array.length; j++)
    if (array[i] === array[j])
      array.splice(j, 1)
}
console.log(array.join(''));