Chunk String

Benchmark created by Justin Warkentin on


Description

Split string into n-size chunks

Setup

function chunkSubstr1(str, size) {
      var chunks = new Array(str.length / size + .5 | 0),
          nChunks = chunks.length;
    
      var newo = 0;
      for(var i = 0, o = 0; i < nChunks; ++i, o = newo) {
        newo += size;
        chunks[i] = str.substr(o, size);
      }
    
      return chunks;
    }
    
    function chunkSubstr2(str, size) {
      var numChunks = str.length / size + .5 | 0,
          chunks = new Array(numChunks);
    
      for(var i = 0, o = 0; i < numChunks; ++i, o += size) {
        chunks[i] = str.substr(o, size);
      }
    
      return chunks;
    }
    
    function chunkRegex(str, size) {
      var re = new RegExp('.{1,' + size + '}', 'g');
      return str.match(re);
    }
    
    function chunkString1(str, len) {
      var _size = Math.ceil(str.length/len),
          _ret  = new Array(_size),
          _offset
      ;
    
      for(var _i=0; _i<_size; _i++) {
        _offset = _i * len;
        _ret[_i] = str.substring(_offset, _offset + len);
      }
    
      return _ret;
    }
    
    function chunkString2(str, len) {
      var size = str.length / len + .5 | 0,
          ret  = new Array(size),
          offset = 0;
    
      for(var i = 0; i < size; ++i, offset += len) {
        ret[i] = str.substring(offset, offset + len);
      }
    
      return ret;
    }
    
    var testStr = '1010011000100001110010011111111010100101010100100011111100000000';

Test runner

Ready to run.

Testing in
TestOps/sec
chunkSubstr1()
chunkSubstr1(testStr, 8);
ready
chunkSubstr2()
chunkSubstr2(testStr, 8);
ready
Chunk with regex
chunkRegex(testStr, 8);
ready
chunkString1()
chunkString1(testStr, 8);
ready
chunkString2()
chunkString2(testStr, 8);
ready

Revisions

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

  • Revision 1: published by Justin Warkentin on
  • Revision 3: published by Xotic750 on