HTML Preparation code:
AخA
 
1
<script src="//cdnjs.cloudflare.com/ajax/libs/lodash-fp/0.10.4/lodash-fp.min.js"></script>
Script Preparation code:
x
 
var numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30];
function* map(f, xs) {
  for (const x of xs) {
    yield f(x);
  }
}
function* filter(f, xs) {
  for (const x of xs) {
    if (f(x)) {
      yield(x);
    }
  }
}
function* filterMap(f, g, xs) {
  for (const x of xs) {
    if (f(x)) {
      yield g(x);
    }
  }
}
Tests:
  • pure js

     
    var pure = numbers.filter(num => num % 2 === 0).map(num=> ({
        result: num
    }));
  • lodash fp

     
    _.flow(_.map(num => ({
        result: num
    })), _.filter(num => num % 2 === 0))(numbers);
  • generator, filter + map

     
    var pure = [...filter(num => num % 2 === 0, map(num => ({ result: num }), numbers))];
  • generator, filterMap

     
    var pure = [...filterMap(num => num % 2 === 0, num => ({ result: num }), numbers)];
  • pure js, reversed

     
    var pure = numbers.map(num=> ({ result: num })).filter(({result}) => result % 2 === 0);
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    pure js
    lodash fp
    generator, filter + map
    generator, filterMap
    pure js, reversed

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 3 years ago)
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36
Chrome 95 on Windows
View result in a separate tab
Test name Executions per second
pure js 4734605.0 Ops/sec
lodash fp 128519.8 Ops/sec
generator, filter + map 135683.7 Ops/sec
generator, filterMap 600702.4 Ops/sec
pure js, reversed 3111443.0 Ops/sec