Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Object Array Equality (Map-JSON.stringify + sort vs Multiple Loops)) v2
(version: 0)
Comparing performance of:
Map-JSON.stringify + Sort vs Multiple Loops
Created:
2 years ago
by:
Guest
Jump to the latest result
Script Preparation code:
var objArr1 = [{},{ a: 1, b: 2, c: 3, d: 4, e: 5, },{a:undefined}] var objArr2 = [{a:null},{ 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 let bArray, sArray, foundSArrayIdxs = {} if($objArr2.length>$objArr2.length) { bArray = $objArr2 sArray = $objArr1 } else { bArray = $objArr1 sArray = $objArr2 } return bArray.every(($obj1)=>{ let $obj1Keys = Object.keys($obj1) let $obj1Len = $obj1Keys.length return sArray.some(($obj2, sidx)=>{ if(foundSArrayIdxs[sidx]) return false for(let i=0; i<$obj1Keys.length; i++) { let key = $obj1Keys[i] if($obj2[key]!==$obj1[key]) { return false } if(!has.call($obj2,key)) { return false } } let found = $obj1Len===objectLength($obj2) if(found) { foundSArrayIdxs[sidx] = true } return found }) }) } function objectLength(obj) { let i = 0; for(let k in obj){ i++ } return i }
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)) }
Rendered benchmark preparation results:
Suite status:
<idle, ready to run>
Run tests (2)
Previous results
Fork
Test case name
Result
Map-JSON.stringify + Sort
Multiple Loops
Fastest:
N/A
Slowest:
N/A
Latest run results:
No previous run results
This benchmark does not have any results yet. Be the first one
to run it!
Comments
Confirm delete:
Do you really want to delete benchmark?