![](/img/trans.png)
[英]Loop function not working for vowel counter. How can i make a counter text bold
[英]How can I improve this vowel counter function for higher efficiency?
該代碼有效,但我想知道是否有可能收到有關如何使此函數運行更快的建議。
我使用了正則表達式以及match方法,因為它們對我而言似乎很簡單。
const vowelCount = str => {
let vowels = /[aeiou]/gi;
let result = str.match(vowels);
let count = result.length;
console.log(count);
};
該函數將顯示字符串中的元音數量。
簡單的for循環或foreach速度稍快,但是它很小,因此您搬到這里並沒有看到太多好處。
但是,這里有一些更快的選擇。
您的代碼(定時):〜0.185 ms
const vowelCount = str => { let vowels = /[aeiou]/gi; let result = str.match(vowels); return result.length; }; var t0 = performance.now(); vowelCount("aSdDDDdasDD"); var t1 = performance.now(); console.log("Call took: " + (t1 - t0) + " MS");
前循環(定時):〜.070毫秒
const vowelCount = str => { var vowels = 'aeiouAEIOU'; var count = 0; for(var x = 0; x < str.length ; x++) { if (vowels.indexOf(str[x]) !== -1){ count += 1; } } return count; }; var t3 = performance.now(); vowelCount("aSdDDDdasDD"); var t4 = performance.now(); console.log("Call took: " + (t4 - t3) + " MS");
每次(定時):〜.074毫秒
const vowelCount = str => { var vowels = 'aeiouAEIOU'; var count = 0; Array.from(str).forEach((c) => { if(vowels.indexOf(c)) { count++; } }); return count; }; var t3 = performance.now(); vowelCount("aSdDDDdasDD"); var t4 = performance.now(); console.log("Call took: " + (t4 - t3) + " MS");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.