Javascript 元音消除困难
因此,我正在进行一项javascript编码挑战,我应该消除字符串中的所有元音,下面是我的代码:Javascript 元音消除困难,javascript,string,Javascript,String,因此,我正在进行一项javascript编码挑战,我应该消除字符串中的所有元音,下面是我的代码: function removeVowel(str) { var i = 0; for (i = 0; i < str.length; i++) { if (str[i] === "a" || str[i] === "e" || str[i] === "i" || str[i] === "o" || str[i] === "u" || str[i] === "A" |
function removeVowel(str) {
var i = 0;
for (i = 0; i < str.length; i++) {
if (str[i] === "a" || str[i] === "e" || str[i] === "i" || str[i] === "o" ||
str[i] === "u" || str[i] === "A" || str[i] === "E" || str[i] === "I" ||
str[i] === "O" || str[i] === "U") {
if (i === 0) {
var temp = str.substr(i + 1, str.length);
str = temp;
} else if (i === 1) {
var temp = str.substr(0, 1) + str.substr(i + 1, str.length);
str = temp;
} else if (i === str.length - 1) {
var temp = str.substr(0, str.length - 2);
str = temp;
} else {
var temp = str.substr(0, i) + str.substr(i + 1, str.length);
str = temp;
}
}
}
return str;
}
console.log(removeVowel("Cheese!"));
函数删除元音(str){
var i=0;
对于(i=0;i
当元音与辅音在一起时,代码可以正常工作,但当字符串中有连续元音时,代码无法正常工作
上述代码的输出为“Ches!”
我遗漏了什么吗?有人能给我指点一下吗?假设你没有像评论中所说的那样使用正则表达式,那么你的代码的问题是你要从单词中删除字母,同时增加I。这样,当你到达“Cheese”中的第一个“e”时,它会删除它并增加i,将你带到新词“Chese”的“s”位置。尝试使用while循环,或者在找到元音时记住返回一个位置。如果您没有像评论中所说的那样使用正则表达式,那么代码的问题是您正在从单词中删除字母,同时增加i。这样,当你到达“Cheese”中的第一个“e”时,它会删除它并增加i,将你带到新词“Chese”的“s”位置。尝试使用while循环,或者在找到元音时记住返回一个位置。您可以简单地使用regex
/[aeiou]+//gi
删除所有元音
function removeVowel(str)
{
var vowels = ["a", "e", "i", "o", "u", "A", "E", "I", "O", "U"];
var chars = str.split("");
return chars.filter(function(char)
{
return vowels.indexOf(char) === -1;
}).join("");
}
函数删除元音(str){
var str=str.replace(/[aeiou]+/gi,”);
返回str;
}
console.log(去掉元音(“ChEese!”)
您只需regex/[aeiou]+/gi
即可删除所有元音
函数删除元音(str){
var str=str.replace(/[aeiou]+/gi,”);
返回str;
}
console.log(去掉元音(“ChEese!”)代码>你的方法(固定)
方法中的问题:
var temp = str.substr(i + 1, str.length);
^
|_ You're losing the first part of your String (0 -> i), so you're assigning the String (i + 1 -> length).
执行子字符串
函数后,需要减小索引i
函数删除元音(str){
var i=0;
对于(i=0;i你的方法(固定)
方法中的问题:
var temp = str.substr(i + 1, str.length);
^
|_ You're losing the first part of your String (0 -> i), so you're assigning the String (i + 1 -> length).
执行子字符串
函数后,需要减小索引i
函数删除元音(str){
var i=0;
对于(i=0;i console.log(去掉元音(“Cheese!”)
你能用正则表达式吗?str.replace(/[aeiou]+/gi',)的可能副本。
:-)你能用正则表达式吗?str.replace(/[aeiou]+/gi',)的可能副本
:-)谢谢你回答我的问题,而不是取笑我:)谢谢你回答我的问题,而不是取笑我:)非常感谢你如此关注我的代码并如此详细地回答我的问题。我的第一个方法是将字符串转换为数组,但我没有;我不知道如何做到这一点,这就是我应用第二种方法的原因。非常感谢您如此仔细地查看我的代码并如此详细地回答我的问题。我的第一种方法是将字符串转换为数组,但我没有;我不知道如何做到这一点,这就是我应用第二种方法的原因。即使您的代码可能是OP问题的有效解决方案,也建议您描述代码片段的用途,而不仅仅是添加代码。即使您的代码可能是OP问题的有效解决方案,建议描述代码段的用途,而不是只添加代码。