Test name | Executions per second |
---|---|
Lodash | 68.3 Ops/sec |
Native | 40.3 Ops/sec |
<script src='https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js'></script>
var max2 = 500000;
var data = [];
for (var i = 0; i <= max2; i++) { data.push({ id: i }); }
_.groupBy(data, ({ id }) => id)
// Using reduce to mimic _.groupBy
const grouped = data.reduce((acc, item) => {
// Initialize an array for this id if it doesn't exist
if (!acc[item.id]) acc[item.id] = [];
// Push the item into the array for this id
acc[item.id].push(item);
return acc;
}, {});