簡體   English   中英

如何改善此元音計數器功能以獲得更高的效率?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM