Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
reduce-vs-uniqBy
Compare different ways of extracting unique items
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36
Browser:
Chrome 121
Operating system:
Mac OS X 10.15.7
Device Platform:
Desktop
Date tested:
2 years ago
Test name
Executions per second
Array.prototype.reduce()
1511580.2 Ops/sec
_.uniqBy
340386.4 Ops/sec
HTML Preparation code:
<script src='https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js'></script>
Script Preparation code:
var workOrders = _.range(_.random(100)).map(x => ({ assignee: { id: _.random(1, 10), }, }));
Tests:
Array.prototype.reduce()
workOrders.reduce((accumulator, workOrder) => { if (workOrder.assignee === null) { return accumulator; } const assigneeExists = accumulator.some(assignee => assignee.id === workOrder.assignee.id); return assigneeExists === true ? accumulator : [...accumulator, workOrder.assignee]; }, []);
_.uniqBy
_(workOrders).map('assignee').filter().uniqBy('id').value();