Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
collatorCompare() vs collatorCompare2() with isBlank
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/124.0.0.0 Safari/537.36
Browser:
Chrome 124
Operating system:
Mac OS X 10.15.7
Device Platform:
Desktop
Date tested:
2 years ago
Test name
Executions per second
collatorCompare2()
1826193.6 Ops/sec
collatorCompare()
2526319.0 Ops/sec
Script Preparation code:
var a = "FOO BAR"; var b = "foo bar"; var options = { numeric: true }; var collator = new Intl.Collator('en', options); function collatorCompare(valueA, valueB) { const valueAMissing = valueA == null || valueA == undefined; const valueBMissing = valueB == null || valueB == undefined; if (valueA === valueB) { return 0 } else if (valueAMissing) { return -1 } else if (valueBMissing) { return 1 } return collator.compare(valueA, valueB) } function hasUnknownProperty(val) { return ( typeof val === 'object' && val !== null && typeof (val).unknownProperty === 'function' ); } function isEmpty(obj) { if (obj === null || obj === undefined) { return true; } if (!hasUnknownProperty(obj) && typeof(obj).size === 'number') { return !(obj).size; } if (typeof obj === 'object') { let size = get(obj, 'size'); if (typeof size === 'number') { return !size; } let length = get(obj, 'length'); if (typeof length === 'number') { return !length; } } if (typeof(obj).length === 'number' && typeof obj !== 'function') { return !(obj).length; } return false; } function isBlank(obj) { return isEmpty(obj) || (typeof obj === 'string' && /\S/.test(obj) === false); } function collatorCompare2(valueA, valueB) { if (valueA === valueB) { return 0 } else if (isBlank(valueA)) { return -1 } else if (isBlank(valueB)) { return 1 } return collator.compare(valueA, valueB) }
Tests:
collatorCompare2()
collatorCompare2(a,b) === 0
collatorCompare()
collatorCompare(a,b) === 0