Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
JS Native vs Loadash
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/122.0.0.0 Safari/537.36
Browser:
Chrome 122
Operating system:
Mac OS X 10.15.7
Device Platform:
Desktop
Date tested:
2 years ago
Test name
Executions per second
Lodash
126680.2 Ops/sec
JS Native
210384.5 Ops/sec
HTML Preparation code:
<script src='https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js'></script>
Tests:
Lodash
function removeNullUndefined(obj) { if (_.isArray(obj)) { return obj.map(element => (_.isObject(element) ? removeNullUndefined(element) : element)).filter(el => el !== null && el !== undefined); } else if (_.isObject(obj)) { return _(obj) .omitBy(_.isNil) .mapValues(removeNullUndefined) .value(); } return obj; } const obj = { a: 1, b: null, c: { d: 2, e: undefined, f: { g: null, h: 3 } }, i: [4, null, { j: undefined, k: 5 }] }; const cleanedObj = removeNullUndefined(obj); console.log(cleanedObj);
JS Native
function removeNullUndefined(obj) { if (typeof obj !== 'object' || obj === null) { return obj; } if (Array.isArray(obj)) { return obj.map(removeNullUndefined); } return Object.keys(obj).reduce((acc, key) => { const value = obj[key]; if (value !== null && value !== undefined) { if (typeof value === 'object') { acc[key] = removeNullUndefined(value); } else { acc[key] = value; } } return acc; }, {}); } const obj = { a: 1, b: null, c: { d: 2, e: undefined, f: { g: null, h: 3 } }, i: [4, null, { j: undefined, k: 5 }] }; const cleanedObj = removeNullUndefined(obj); console.log(cleanedObj);