if(string[i] === "a" || string[i] === "e" || string[i] === "i" || string[i] === "o" || string[i] ==="u"){}
我正在编写一个带字符串的函数,并返回该字符串中元音的数量。
上面的代码就是我用来比较每个字母以查看它是否是一个元音。它奏效了。
然而,代码对我来说似乎非常混乱。但我不知道如何更好地写它。有没有更简洁的方法来编写这段代码?
答案 0 :(得分:2)
您可以使用简单的RegEx来完成它,并将其与String原型结合使用:
String.prototype.countVowels = function()
{
var vowels = this.match(/[aeiou]/gi);
return (vowels === null) ? 0 : vowels.length;
}
然后使用:
调用它var vowels = 'abcdefghijklmnopqrstu'.countVowels(); // Returns 5.
RegEx由@JamesThrope提供。
答案 1 :(得分:1)
function getAllVowels(string) {
var m = string.match(/[aeiou]/gi);
return m === null ? 0 : m.length;
}
OR
var syl = ("|"+a+"|").split(/[aeiou]/i).length-1;
答案 2 :(得分:0)
为什么不使用object来检查和计算
var count = {
a: 0,
e: 0,
i: 0,
o: 0,
u: 0
}
if (string[i].toLowerCase() in count) {
count[string[i].toLowerCase()]++;
}