reduce vs filter vs forEach count (v2)

Revision 2 of this benchmark created on


Setup

var data = Array(10 ** 4).fill(null).map((_, i) => {
  return {
    bool: Math.random() < 0.5,
  }
})

Test runner

Ready to run.

Testing in
TestOps/sec
reduce
var [a, b] = data.reduce((acc, curr) => {
  curr.bool ? acc[0]++ : acc[1]++
  return acc
}, [0, 0])
ready
filter
var a = data.filter(el => el.bool).length
var b = data.length - a
ready
forEach
var a = 0
var b = 0

data.forEach(el => el.bool ? a++ : b++)
ready

Revisions

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