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)
}
一直在尝试使用上面的代码,但它只会删除其他所有字符。
答案 0 :(得分:3)
我的方法是将其转换为Set
,然后转换为Array
,然后转换为join
,以获得最终的Stirng
。
let a = 'aaabbbcdddd';
console.log(Array.from(new Set(a)).join(''));
答案 1 :(得分:2)
利用join的唯一性,使用Spread syntax和Set(...
)的直接方法
let a = 'aaabbbcdddd';
console.log([...new Set(a)].join(''));
通过
Set
对象,您可以存储任何类型的唯一值
我们提供字符串(可迭代)以启动Set
,该字符串将删除其中的所有重复项。然后,我们将其转换回具有Spread syntax
(...
)的数组。最后,join
将数组重新组合在一起以使其成为字符串。
答案 2 :(得分:0)
您的迭代器i
和j
将错误地重叠。相反,您应该从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(''));