Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
lodash merge vs lodash/fp merge vs custom merge vs spread
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/125.0.0.0 Safari/537.36
Browser:
Chrome 125
Operating system:
Mac OS X 10.15.7
Device Platform:
Desktop
Date tested:
one year ago
Test name
Executions per second
lodash merge
1262860.4 Ops/sec
lodash/fp merge
1017744.6 Ops/sec
custom merge
3581129.8 Ops/sec
spread
21919096.0 Ops/sec
HTML Preparation code:
<script src='https://cdn.jsdelivr.net/g/lodash@4(lodash.min.js+lodash.fp.min.js)'></script>
Script Preparation code:
var fp = _.noConflict(); function customMerge(a, b) { const result = {} for (const prop in a) if (a.hasOwnProperty(prop)) { result[prop] = b.hasOwnProperty(prop) ? a[prop].constructor === Object ? customMerge(a[prop], b[prop]) : b[prop] : a[prop] } return result }
Tests:
lodash merge
var a = { a: 'a', b: 'b', c: { a: 'ca', b: 'cb' }}; var b = { a: 'aa', c: {b: 'cbb'}}; var c = _.merge({}, a, b);
lodash/fp merge
var a = { a: 'a', b: 'b', c: { a: 'ca', b: 'cb' }}; var b = { a: 'aa', c: {b: 'cbb'}}; var c = fp.merge(b, a);
custom merge
var a = { a: 'a', b: 'b', c: { a: 'ca', b: 'cb' }}; var b = { a: 'aa', c: {b: 'cbb'}}; var c = customMerge(a, b)
spread
var a = { a: 'a', b: 'b', c: { a: 'ca', b: 'cb' }}; var b = { a: 'aa', c: {b: 'cbb'}}; var c = { ...a, ...b, c: { ...a.c, ...b.c, }, }