Javascript 如何从字符串中删除所有元音并使用for循环返回结果?

Javascript 如何从字符串中删除所有元音并使用for循环返回结果?,javascript,string,Javascript,String,我想写一个函数,它接收一个字符串并返回一个新字符串,使用for循环删除所有元音。我尝试过使用各种字符串方法,但运气不佳 到目前为止,我的代码是这样的: function disemvowel(string) { let newString = ""; for (let i = 0; i < str.length; i++) { if (string[i] != "a" && string[i] != "e" && string[i] != "

我想写一个函数,它接收一个字符串并返回一个新字符串,使用for循环删除所有元音。我尝试过使用各种字符串方法,但运气不佳

到目前为止,我的代码是这样的:

function disemvowel(string) {
  let newString = "";
  for (let i = 0; i < str.length; i++) {
    if (string[i] != "a" && string[i] != "e" && string[i] != "i" && string[i] != "o" && string[i] != "u") {
      return newString += string[i];
    };
  };
};
函数disemvowel(字符串){
让newString=“”;
for(设i=0;i
更新 这个问题不是重复的。这是我一直在寻找的解决方案

function disemvowel(string) {

  let vowels = {
    'a': true,
    'e': true,
    'i': true,
    'o': true,
    'u': true
  };

  let result = "";

  for (let i = 0; i < string.length; i++) {
    let letter = string[i].toLowerCase();
    if (!vowels[letter]) {
      result += string[i];
    }
  };
  return result;
};
函数disemvowel(字符串){
让元音={
“a”:是的,
“e”:对,
“我”:是的,
“o”:对,
“u”:对
};
让结果=”;
for(设i=0;i
最简单的方法是将
函数替换为正则表达式:

function removeVowels( input ){
    return input.replace(/[aeiouAEIOU]/g, "");
}
备注:此函数不测试输入是否为字符串,此处假定为

正如Jonas Wilms所指出的,通过将
i
(忽略大小写)标志与正则表达式一起使用,可以以更短的方式实现这一点:

function removeVowels( input ){
    return input.replace(/[aeiou]/gi, "");
}

最简单的方法是使用正则表达式替换
函数:

function removeVowels( input ){
    return input.replace(/[aeiouAEIOU]/g, "");
}
备注:此函数不测试输入是否为字符串,此处假定为

正如Jonas Wilms所指出的,通过将
i
(忽略大小写)标志与正则表达式一起使用,可以以更短的方式实现这一点:

function removeVowels( input ){
    return input.replace(/[aeiou]/gi, "");
}

您需要
g
标志,使用
i
标志,您可以为
g
标志保存元音符号的重复。这里也可以使用i标志,这是真的谢谢!有没有一种方法可以使用for循环或其他不是快捷表达式的简单方法,如
.replace(/[aeiou]/ig',)
您需要
g
标志,使用
i
标志,您可以为
g
标志保存元音符号的重复。这里也可以使用i标志,这是真的谢谢!有没有一种方法可以使用for循环或其他不是快捷表达式的简单方法,如
.replace(/[aeiou]/ig,”)
以及重复问题,您可能想知道函数的错误:您在
str
string
之间切换;这需要前后一致。您将
返回语句
放错了位置。删除
return
并在
for
-循环块关闭后添加
return newString
。顺便说一下,我喜欢你的函数名!尽管修复了,Hm my for循环仍然不起作用。谢谢你!除了重复的问题,您可能还想知道您的函数有什么问题:在
str
string
之间切换;这需要前后一致。您将
返回语句
放错了位置。删除
return
并在
for
-循环块关闭后添加
return newString
。顺便说一下,我喜欢你的函数名!尽管修复了,Hm my for循环仍然不起作用。谢谢你!