Test name | Executions per second |
---|---|
JSON.stringify | 2.8 Ops/sec |
lodash.isEqual | 1.2 Ops/sec |
<script src='https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js'></script>
window.isEqualStringify = (obj1, obj2) => JSON.stringify(obj1) === JSON.stringify(obj2);
window.isEqualLodash = _.isEqual;
window.test1 = {
obj: {},
arr: [],
};
for (let i = 0; i < 1000; i++) {
test1.obj['prop_' + i] = {};
let arrReference = [];
test1.arr.push(arrReference);
let objReference = test1.obj['prop_' + i];
for (let j = 0; j < i; j++) {
objReference['internal_prop_' + j] = {};
objReference = objReference['internal_prop_' + j];
arrReference.push(j);
}
}
window.test2 = JSON.parse(JSON.stringify(test1));
isEqualStringify(test1, test2)
isEqualLodash(test1, test2)