Run details:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36
Chrome 119
Mac OS X 10.15.7
Desktop
one year ago
Test name Executions per second
lodash 1108.2 Ops/sec
native new 5914.2 Ops/sec
native old 4978.6 Ops/sec
native for loop 1072.4 Ops/sec
HTML Preparation code:
AخA
 
1
<script src='https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js'></script>
Script Preparation code:
 
var values = new Array(200 * 200 * 4)
Tests:
  • lodash

     
    var chunks = _.chunk(values, 4)
  • native new

    x
     
    const chunk = (input, size) => {
      return input.reduce((arr, item, idx) => {
        if (idx % size === 0) {
          arr.push([item]);
        }
        else {
          arr[arr.length - 1].push(item);
        }
        return arr;
      }, []);
    }
    var chunks = chunk(values, 4)
  • native old

     
    const chunk = (input, size) => {
      return input.reduce((arr, item, idx) => {
        return idx % size === 0
          ? [...arr, [item]]
        : [...arr.slice(0, -1), [...arr.slice(-1)[0], item]];
      }, []);
    }
    var chunks = chunk(values, 4)
  • native for loop

     
    const chunk = (input, size) => {
      const arr = [];
      for (let i = 0; i < input.length; i += size) {
        arr.push(input.slice(i, i + size));
      }
      return arr;
    };
    var chunks = chunk(values, 4)