Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript删除相邻的重复字母_Javascript_Duplicates - Fatal编程技术网

JavaScript删除相邻的重复字母

JavaScript删除相邻的重复字母,javascript,duplicates,Javascript,Duplicates,我已经看到了一些这样的例子,但它们要么不在JS中,要么效率极低(就像我现在的解决方案)。基本上,我想要做的是一个函数,它接受一个字符串并删除任何相邻且相同的字符。例如,“jjjavvaassscript”将变成“javascript”。我不想看到的是它会变成“javscript”(去掉第二个“a”)。我确实有一个如下所示的工作函数,但它绝对可怕,我正在寻找一个更好的方法来实现它 函数removeChar(文本,索引){ 返回(text.slice(0,索引)+text.slice(索引+1));

我已经看到了一些这样的例子,但它们要么不在JS中,要么效率极低(就像我现在的解决方案)。基本上,我想要做的是一个函数,它接受一个字符串并删除任何相邻且相同的字符。例如,“jjjavvaassscript”将变成“javascript”。我不想看到的是它会变成“javscript”(去掉第二个“a”)。我确实有一个如下所示的工作函数,但它绝对可怕,我正在寻找一个更好的方法来实现它

函数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+
会更好,因为您不需要替换没有重复的字符