Run details:
Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36
Chrome 52
Windows 7
Other
8 years ago
Test name Executions per second
forEach version 1010245.6 Ops/sec
regexVersion 1456395.1 Ops/sec
Tests:
  • forEach version

    x
     
    // useful for HtmlCollection, NodeList, String types
    function forEach(array, callback, scope){for (var i=0,n=array.length; i<n; i++)callback.call(scope, array[i], i, array);} // passes back stuff we need
    function countVowels(input)
    {
        var vowels = 'aeiou', result = 0;
        forEach( input, function(char){ if (vowels.indexOf(char) != -1) result++; } );
        return result;
    }
    countVowels("goes");
  • regexVersion

     
    function VowelCount(str) { 
        var pattern = /[aeiou]/i;
        var vowelCount = 0;
        for (var i = 0; i < str.length; i++) {
            if (pattern.test(str[i])){
                vowelCount++;
            }
        }
        return vowelCount; 
    }
    VowelCount("goes")