Run details:
Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36
Chrome Mobile 114
Android
Mobile
one year ago
Test name Executions per second
lodash 314.7 Ops/sec
native new 1620.4 Ops/sec
native old 1492.1 Ops/sec
native for loop 407.8 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)