如何用JavaScript制作一个给定字符串中辅音加倍的程序?
所以,我要解决的问题是 编写一个JavaScript函数,该函数接受一个字符串作为参数,并将返回一个类似的字符串,但每个辅音都要加倍。如何用JavaScript制作一个给定字符串中辅音加倍的程序?,javascript,Javascript,所以,我要解决的问题是 编写一个JavaScript函数,该函数接受一个字符串作为参数,并将返回一个类似的字符串,但每个辅音都要加倍。 以下是一个例子: 双辅音(“Johnathan”);//返回“jjohnnatthhann” 双辅音(“赛车”);//返回“rracccarr” !!!我们必须假设字符串不包含任何空格 到目前为止,这是我所有的代码,现在,我不知道如何继续。谁能帮帮我吗 函数双辅音(字符串){ 让辅音= [ ‘b’、‘c’、‘d’、‘f’、‘g’、‘h’、‘j’、‘k’、‘l
以下是一个例子:
双辅音(“Johnathan”);//返回“jjohnnatthhann”
双辅音(“赛车”);//返回“rracccarr”
!!!我们必须假设字符串不包含任何空格强>
到目前为止,这是我所有的代码,现在,我不知道如何继续。谁能帮帮我吗
函数双辅音(字符串){
让辅音=
[
‘b’、‘c’、‘d’、‘f’、‘g’、‘h’、‘j’、‘k’、‘l’、‘m’、‘n’、‘p’、‘q’、‘r’、‘s’、‘t’、‘v’、‘w’、‘x’、‘z’
];
}
我知道这没什么大不了的,但如果有人能帮我,我会非常感激的
const辅音sarr=[
//“a”,
“b”、“c”、“d”、“e”,
“f”、“g”、“h”、“i”,
“j”、“k”、“l”、“m”、“n”、“o”,
“p”、“q”、“r”、“s”、“t”、“u”,
“v”、“w”、“x”、“y”、“z”
];
/**
*把辅音串起来
*@param{string}str输入字符串
*@返回{string}带有双辅音的输入字符串
*/
功能双辅音(str){
返回数组
.from(str)//从输入中生成一个数组以使用数组方法
.reduce((acc,b)=>{//减少字符串concat的数组
返回acc+(
辅音sarr.includes(b.toLowerCase())?//检查b是否为辅音
b+b://如果是,则加倍
否则就把它传过去
);
},“”);//以空字符串开始reduce
}
console.log(双辅音(“Johnathan”);//Jjohnnatthhann
console.log(双辅音(“racecar”);//Rracccarr
console.log(双辅音(“abc123”);//abbcc123
这是我能想到的最简单的方法:
常量元音='a,e,i,o,u'.split()
str.reduce((nextStr,字母)=>{
如果(元音包含(字母))返回下一个TSTR+字母
否则返回下一个TSTR+字母+字母
}, '')
对不起,我在手机上的格式设置有问题 我能想到的最简单的方法是使用基于a的替换函数。下面的代码示例基本上是将辅音数组转换成一个模式:
/[bcdfghjklmnpnpqrstvwxz]/gi
函数双辅音(str){
常量辅音=['b','c','d','f','g','h','j','k','l','m','n','p','q','r','s','t','v','w','x','z'];
const re=new RegExp(`[${consonates.join('''}]`,'gi');
返回str.replace(re,match=>match+match);
}
log(双辅音('Johnathan')=='jjohnnatthhann');
log(双辅音('racecar')=='rracccarr')代码>下面是使用正则表达式的简单方法:
如果字符不是a
、e
、i
、o
或u
,则我们将再次重复该字符
常量双辅音=s=>s.replace(/[^aeiou]/gi,char=>char.repeat(2));
console.log(双辅音(“Johnathan”);
console.log(双辅音(“racecar”)
A用于循环和数组。按和数组。包括。此外,使用包含所有元音的数组将更短,您可以检查每个字符是否为元音,而不是辅音。这对每个人都很好。感谢大家的回复和解决方案,非常感谢!但显然,我们在创建程序时不应该使用数组。虽然我找到了一个解决方案,但它不是我的分享。它是由其他人开发的,他们不想让我分享,所以,我不会发布答案。但是,我发现你所有的答案都很有帮助,所以谢谢你。