JavaScript删除相邻的重复字母
我已经看到了一些这样的例子,但它们要么不在JS中,要么效率极低(就像我现在的解决方案)。基本上,我想要做的是一个函数,它接受一个字符串并删除任何相邻且相同的字符。例如,“jjjavvaassscript”将变成“javascript”。我不想看到的是它会变成“javscript”(去掉第二个“a”)。我确实有一个如下所示的工作函数,但它绝对可怕,我正在寻找一个更好的方法来实现它JavaScript删除相邻的重复字母,javascript,duplicates,Javascript,Duplicates,我已经看到了一些这样的例子,但它们要么不在JS中,要么效率极低(就像我现在的解决方案)。基本上,我想要做的是一个函数,它接受一个字符串并删除任何相邻且相同的字符。例如,“jjjavvaassscript”将变成“javascript”。我不想看到的是它会变成“javscript”(去掉第二个“a”)。我确实有一个如下所示的工作函数,但它绝对可怕,我正在寻找一个更好的方法来实现它 函数removeChar(文本,索引){ 返回(text.slice(0,索引)+text.slice(索引+1));
函数removeChar(文本,索引){
返回(text.slice(0,索引)+text.slice(索引+1));
}
函数移除副本(文本){
var prevChar=“”;
var finalT=文本;
var i=0;
对于(i=0;i最终长度){
最终返回;
}否则{
finalT=移除向量(finalT,i);
我--;
}
}否则{
prevChar=最终字符(i);
}
}
最终返回;
}
任何帮助都将不胜感激 我会使用正则表达式匹配字符,然后尽可能多次地反向引用它(例如,它将匹配
jjj
,或a
,或vvv
,等等),然后替换为一个字符:
const removeDuplicates=str=>str.replace(/()\1*/g,$1');
log(移除的副本('jjjavvaasscript')
也许\1+
会更好,因为您不需要替换没有重复的字符