if(string[i] === "a" || string[i] === "e" || string[i] === "i" || string[i] === "o" || string[i] ==="u"){}
我正在寫一個函數,它接受一個字符串並返回該字符串中元音的數量。返回字符串中元音數量的函數
上面的代碼是我用來比較每個字母,看它是否是元音。有效。
但是,代碼似乎對我來說非常混亂。但我不知道如何寫得更好。有沒有更簡潔的方式來編寫這段代碼?
if(string[i] === "a" || string[i] === "e" || string[i] === "i" || string[i] === "o" || string[i] ==="u"){}
我正在寫一個函數,它接受一個字符串並返回該字符串中元音的數量。返回字符串中元音數量的函數
上面的代碼是我用來比較每個字母,看它是否是元音。有效。
但是,代碼似乎對我來說非常混亂。但我不知道如何寫得更好。有沒有更簡潔的方式來編寫這段代碼?
你可以用一個簡單的正則表達式做到這一點,並用字符串原型結合起來:
String.prototype.countVowels = function()
{
var vowels = this.match(/[aeiou]/gi);
return (vowels === null) ? 0 : vowels.length;
}
,然後使用調用它:
var vowels = 'abcdefghijklmnopqrstu'.countVowels(); // Returns 5.
RegEx由@JamesThrope提供。
爲什麼不檢查和計數
var count = {
a: 0,
e: 0,
i: 0,
o: 0,
u: 0
}
使用與in
operator
if (string[i].toLowerCase() in count) {
count[string[i].toLowerCase()]++;
}
放元音將陣列使用object找到 – Mahi
什麼是錯的方式的問題。真的不明白我在這裏做錯了 –
你的意思是downvotes? – Mahi