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

Emm*_*mmy 1 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] != "i" && string[i] != "o" && string[i] != "u") {
      return newString += string[i];
    };
  };
};
Run Code Online (Sandbox Code Playgroud)

更新 问题不是重复的。这是我一直在寻找的解决方案。

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;
};
Run Code Online (Sandbox Code Playgroud)

Psi*_*Psi 6

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

function removeVowels( input ){
    return input.replace(/[aeiouAEIOU]/g, "");
}
Run Code Online (Sandbox Code Playgroud)

备注:该函数不测试输入是否为String,这里假设。

正如 Jonas Wilms 所指出的,通过将i(ignore case) 标志与正则表达式一起使用,可以以更短的方式实现相同的效果:

function removeVowels( input ){
    return input.replace(/[aeiou]/gi, "");
}
Run Code Online (Sandbox Code Playgroud)