rubico
Version:
[a]synchronous functional programming
34 lines (25 loc) • 830 B
JavaScript
const timeInLoop = require('./timeInLoop')
const rubicoGroupBy = require('./groupBy')
const R = require('ramda')
const _ = require('lodash')
const ramdaGroupBy = R.groupBy
const _groupBy = _.groupBy
/**
* @name groupByRaceProperty
*
* @benchmark
* rubicoGroupBy: 1e+6: 365.717ms
* ramdaGroupBy: 1e+6: 1.875s
* _groupBy: 1e+6: 570.417ms
*/
const ages = [{ age: 21 }, { age: 22 }, { age: 23 }, { age: 21 }, { age: 21 }]
/*
console.log(
rubicoGroupBy(object => object.age)(ages),
ramdaGroupBy(object => object.age, ages),
_groupBy(ages, object => object.age),
)
*/
// timeInLoop('rubicoGroupBy', 1e6, () => rubicoGroupBy(object => object.age)(ages))
// timeInLoop('ramdaGroupBy', 1e6, () => ramdaGroupBy(object => object.age, ages))
// timeInLoop('_groupBy', 1e6, () => _groupBy(ages, object => object.age))