chunk methods

Benchmark created by AymKdn on


Description

Test the different answers from http://stackoverflow.com/questions/8495687/split-array-into-chunks

Setup

// code from http://stackoverflow.com/questions/8495687/split-array-into-chunks
    var a=[];
    for (var i=1; i < 110; i++) a.push(i);
    
    function chunkA(arr, n) {
        return arr.reduce(function(p, cur, i) {
            (p[i/n|0] = p[i/n|0] || []).push(cur);
            return p;
        },[]);
    }
    function chunkB(arr, n) {
      var i, j, temparray = [], chunk = n;
      for (i = 0, j = arr.length; i < j; i += chunk) {
        temparray.push(arr.slice(i, i + chunk));
      }
      return temparray
    }
    
    function chunkC(arr, chunkSize) {
        var R = [];
        for (var i=0,len=arr.length; i<len; i+=chunkSize)
            R.push(arr.slice(i,i+chunkSize));
        return R;
    }
    
    function chunkD(arr, n) {
        if ( !arr.length ) {
            return [];
        }
        return [ arr.slice( 0, n ) ].concat( chunkD(arr.slice(n), n) );
    };

Test runner

Ready to run.

Testing in
TestOps/sec
chunkA
chunkA(a)
ready
chunkB
chunkB(a)
ready
chunkC
chunkC(a)
ready
chunkD
chunkD(a)
ready

Revisions

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