Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
Object Array Equality (Map-JSON.stringify + sort vs Multiple Loops)) Fixed
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Mobile Safari/537.36
Browser:
Chrome Mobile 120
Operating system:
Android
Device Platform:
Mobile
Date tested:
2 years ago
Test name
Executions per second
Map-JSON.stringify + Sort
4.1 Ops/sec
Multiple Loops
4.9 Ops/sec
Script Preparation code:
var objArr1 = [{ a: 1, b: 2, c: 3, d: 4, e: 5, }] var objArr2 = [{ e: 5, b: 2, a: 1, d: 4, c: 3, }] function mapStringifySort($objArr1, $objArr2) { $objArr1 = $objArr1.map(obj=>JSON.stringify(obj)).sort() $objArr2 = $objArr2.map(obj=>JSON.stringify(obj)).sort() for (let i=0; i<$objArr1.length; i++){ if($objArr1[i]!==$objArr2[i]) return false } return true } function multipleLoops($objArr1, $objArr2) { const has = Object.prototype.hasOwnProperty return $objArr1.every(($obj1)=>{ let $obj1Len = Object.keys($obj1).length return $objArr2.some(($obj2)=>{ for(let key in $obj1) { if($obj2[key]!==$obj1[key]) { return false } if(!has.call($obj2,key)) { return false } } return $obj1Len===Object.keys($obj2).length }) }) }
Tests:
Map-JSON.stringify + Sort
for(let i=0; i<10000; i++) { console.log(mapStringifySort(objArr1,objArr2)) }
Multiple Loops
for(let i=0; i<10000; i++) { console.log(multipleLoops(objArr1,objArr2)) }