Javascript 如何检查在一个单词中合并两个相邻的重复字符是否可以生成一个特定的单词?

Javascript 如何检查在一个单词中合并两个相邻的重复字符是否可以生成一个特定的单词?,javascript,arrays,string,function,Javascript,Arrays,String,Function,如果我在word1中合并两个相邻的重复字符,我想检查是否可以从word1生成word2 例如: word1 = 'peete' word2 = 'pete' //OK, because merging ee into e in word1 produces word2 word1 = 'peetee' word2 = 'peete' word1 = 'meet' word2 = 'met' 到目前为止,我已经做到了这一点,但由于一些输入,它失败了: 让checkMerge=(word1,

如果我在word1中合并两个相邻的重复字符,我想检查是否可以从word1生成word2

例如:

word1 = 'peete'
word2 = 'pete' //OK, because merging ee into e in word1 produces word2

word1 = 'peetee'
word2 = 'peete'

word1 = 'meet'
word2 = 'met'
到目前为止,我已经做到了这一点,但由于一些输入,它失败了:

让checkMerge=(word1,word2)=>{
让charArr=word1.split(“”);
设resultar=[];
让needToMerge='';
for(设i=0;icheckMerge('meet','met')//更正
您可以使用另一个字符串的偏移量来过滤字符

const
checkMerge=(string1,string2)=>[…string1]
.filter((i=>(c,j)=>c!==string2[i+j]&&--i)(0))
console.log(checkMerge('peete','pete'));//E
console.log(checkMerge('peete','peete'));//E
log(checkMerge('peeteerr','peeter');//呃

log(checkMerge('meet','met');//e
您可以使用另一个字符串的偏移量来过滤字符

const
checkMerge=(string1,string2)=>[…string1]
.filter((i=>(c,j)=>c!==string2[i+j]&&--i)(0))
console.log(checkMerge('peete','pete'));//E
console.log(checkMerge('peete','peete'));//E
log(checkMerge('peeteerr','peeter');//呃

log(checkMerge('meet','met');//e
您可以用一个字符替换重复的字符,然后进行匹配。

让checkMerge=(word1,word2)=>{
word1=word1.替换(/([a-z])\1+/g,“$1”)
word2=word2.替换(/([a-z])\1+/g,“$1”)
返回word1.indexOf(word2)!=-1
}
log(checkMerge('peete','pete')//对的
log(checkMerge('peete','peete')//对的
log(checkMerge('meet','met')//科雷克
log(checkMerge('meete','meta');//假的
让checkMerge2=(word1,word2)=>{
word1=word1.替换(/([a-z])\1+/g,“$1”)
返回word1.indexOf(word2)!=-1
}
日志(checkMerge2('peete','pete'))//对的
日志(选中merge2('peete','peete')//失败
log(checkMerge2('meet','met')//科雷克

log(checkMerge2('meete','meta');//false
您可以用一个字符替换重复的字符,然后进行匹配。

让checkMerge=(word1,word2)=>{
word1=word1.替换(/([a-z])\1+/g,“$1”)
word2=word2.替换(/([a-z])\1+/g,“$1”)
返回word1.indexOf(word2)!=-1
}
log(checkMerge('peete','pete')//对的
log(checkMerge('peete','peete')//对的
log(checkMerge('meet','met')//科雷克
log(checkMerge('meete','meta');//假的
让checkMerge2=(word1,word2)=>{
word1=word1.替换(/([a-z])\1+/g,“$1”)
返回word1.indexOf(word2)!=-1
}
日志(checkMerge2('peete','pete'))//对的
日志(选中merge2('peete','peete')//失败
log(checkMerge2('meet','met')//科雷克

log(checkMerge2('meete','meta');//false
好吧,你从来没有更新过
needToMerge
,当
for
循环中的
if
条件计算为true时,我猜这将是
charArr[I]
,是的,我尝试过needToMerge=charArr[I],但有时它会写错字符。如果你感兴趣,这里有一个清理过的版本:嗯,您从未更新过
needToMerge
,我猜当
if
for循环中的
if
条件评估为true时,这将是
charArr[I]
?是的,我尝试过needToMerge=charArr[I],但有时它会写错字符。如果您感兴趣,这里有一个清理过的版本:我已经尝试了你的代码,但是它在使用“peete”和“peete”时失败了。但是,它应该可以工作,因为如果函数只合并word1=peete结尾的两个ee,结果将是peete,它等于word2。我已经尝试了您的代码,但它在“peete”和“peete”中失败。但是它应该可以工作,因为如果函数只合并word1=peete结尾的两个ee,结果将是peete,它等于word2。谢谢,问题是我不能修改word2,只有word1可以通过一次合并进行修改。你能基于此更新你的解决方案吗?谢谢我不知道你想要什么。你有一个想要的结果的例子吗?是的,我用一些澄清和更多的例子编辑了我的原始帖子。谢谢大家!<代码>检查合并('peeteerr','peeter')不应该工作,因为我们必须在
word1
(ee和rr)上进行两次合并才能得到
word2
word1
上只允许进行一次合并。您可以检查数组长度并返回错误或任何合适的结果。谢谢,问题是我无法修改word2,只有word1可以通过一次合并进行修改。你能基于此更新你的解决方案吗?谢谢我不知道你想要什么。你有一个想要的结果的例子吗?是的,我用一些澄清和更多的例子编辑了我的原始帖子。谢谢大家!<代码>检查合并('peeteerr','peeter')不应该工作,因为我们必须在
word1
(ee和rr)上进行两次合并才能得到
word2
。在
word1
上只允许进行一次合并。您可以检查数组长度并返回错误或任何合适的结果。