Javascript 删除连续重复字符

Javascript 删除连续重复字符,javascript,algorithm,Javascript,Algorithm,我正在尝试从字符串中删除连续的重复字符。因此,aabbcde的输入应输出为cde 我编写了下面的代码,但得到的输出不正确。我不明白为什么 var a=“aabbccddeef” var ncopy=a; 设leftPointer=0; 设rightPointer=1; 设posList=[]; while(true){ if(a[leftPointer]==a[righpointer]){ ncopy=ncopy.replace(a.slice(左指针,右指针+1),“”) 左指针+=2 ri

我正在尝试从字符串中删除连续的重复字符。因此,
aabbcde
的输入应输出为
cde

我编写了下面的代码,但得到的输出不正确。我不明白为什么

var a=“aabbccddeef”
var ncopy=a;
设leftPointer=0;
设rightPointer=1;
设posList=[];
while(true){
if(a[leftPointer]==a[righpointer]){
ncopy=ncopy.replace(a.slice(左指针,右指针+1),“”)
左指针+=2
rightPointer=leftPointer+1;
if(左指针>=a.length | |右指针>=a.length){
打破
}
}否则{
leftPointer++;
rightPointer++;
}
}

console.log(ncopy)您可以使用以下递归函数执行此操作:

const输入='aabbccddeeffg';
函数getResult(str){
const newStr=str.match(/()\1*/g).过滤器(str=>!((str.length%2==0)和&(str.split(“”).every((char,i,arr)=>char==arr[0])。连接(“”);
return newStr==str?newStr:getResult(newStr)
}
const result=getResult(输入);

控制台日志(结果)您可以使用一个简单的正则表达式执行此操作:

'aabbbcde'.replace(/(.)\1+/g, '')
结果:

'cde'
片段:

var a='aabbbcde';
var结果=a.替换(/()\1+/g');

控制台日志(结果)
您有3个连续的
y
字符,为什么要将它们全部删除?@Barmar当您删除4个d时,它将变为4个y。此代码段产生了一个错误:
TypeError:null不是对象(对我来说计算'str.match(/()\1*/g).filter')
如果选择regexp,显然这是正确的方法。
'cde'