2017-05-19 36 views
2

我想写一个函数,它将删除JS中给定字符串中的所有元音。我明白我可以只写string.replace(/ [aeiou]/gi,“”),但我试图用另一种方式完成它......这是我迄今为止所做的...谢谢!替换字符串中的所有元音javascript

我第一次做出了不同的函数调用IsaVowel将返回字符,如果它是一个元音......

function withoutVowels(string) { 

var withoutVowels = ""; 
for (var i = 0; i < string.length; i++) { 
    if (isaVowel(string[i])) { 
***not sure what to put here to remove vowels*** 
     } 
    } 
    return withoutVowels; 
} 
+0

你不想在那里做任何事情,你想在'else'子句中做些什么。 – Barmar

+0

如果问题得到解决,请回答。 – EyuelDK

回答

6

使用蓄能器模式。

function withoutVowels(string) { 
 

 
    var withoutVowels = ""; 
 
    for (var i = 0; i < string.length; i++) { 
 
     if (!isVowel(string[i])) { 
 
     withoutVowels += string[i]; 
 
     } 
 
    } 
 
    return withoutVowels; 
 
} 
 

 
function isVowel(char) { 
 
    return 'aeiou'.includes(char); 
 
} 
 

 
console.log(withoutVowels('Hello World!'));

0

我试图通过第一分割字符串做这个问题到一个数组,同时也创造元音的数组。然后遍历字符串数组中的每个元素,并检查它是否在我的元音数组中。如果它不在我的元音数组中,请将其推送到withoutVowels数组。在for循环的结尾处,加入withoutvowels数组中的所有元素并返回。

function withoutVowels(string) { 
      var strWithoutVowels = []; 
      string = string.split(''); 
      var vowels = ['a', 'e', 'i', 'o', 'u']; 
      for (var i = 0; i < string.length; i++) { 
       if (vowels.indexOf(string[i]) < 0) { 
        strWithoutVowels.push(string[i]) 
       } 
      } 
      strWithoutVowels = strWithoutVowels.join(''); 
      return strWithoutVowels; 
     } 
     console.log(withoutVowels('Hello World!'))