starts_with (v14)

Revision 14 of this benchmark created by Not Provided on


Description

fastest starts-with string match

Setup

// Methods
    function startsWithSlice(str, substr) {
      return str.slice(0, substr.length) === substr;
    }
    
    function escapeRegExp(str) {
        return str.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, '\\$1');
    }
    function startsWithRe(str, substr) {
      return RegExp('^' + escapeRegExp(substr)).test(str);
    }
    
    function startsWithReLiteral(str, substrRe) {
      return substrRe.test(str);
    }
    
    function startsWithCharAt(str, substr) {
      var len = substr.length;
      var i = 0;
    
      for (/*i = 0*/; i < len; i += 1) {
        if (str.charAt(i) !== substr.charAt(i)) {
          return false;
        }
      }
      return true;
    }
    
    
    // Example data
    var arr = [];
    var str = "abcdefghijklmnopqrstuvwxyz zyxwvutsrqponmlkjihgfedcba abdef abc";
    var i;
    for (i = 0; i < 10; i++) {
      arr.push(str.charAt(i % 26) + str);
    }

Test runner

Ready to run.

Testing in
TestOps/sec
slice
arr.filter(function (str) {
  return startsWithSlice(str, 'abcde');
});
ready
regex automatic
arr.filter(function (str) {
  return startsWithRe(str, 'abcde');
});
ready
regex literal
arr.filter(function (str) {
  return startsWithReLiteral(str, /^abcde/);
});
ready
charAt loop
arr.filter(function(s) {
  return startsWithCharAt(str, 'abcde');
});
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.