Tidy up equals snippet
This commit is contained in:
@ -15,13 +15,18 @@ Performs a deep comparison between two values to determine if they are equivalen
|
|||||||
```js
|
```js
|
||||||
const equals = (a, b) => {
|
const equals = (a, b) => {
|
||||||
if (a === b) return true;
|
if (a === b) return true;
|
||||||
|
|
||||||
if (a instanceof Date && b instanceof Date)
|
if (a instanceof Date && b instanceof Date)
|
||||||
return a.getTime() === b.getTime();
|
return a.getTime() === b.getTime();
|
||||||
|
|
||||||
if (!a || !b || (typeof a !== 'object' && typeof b !== 'object'))
|
if (!a || !b || (typeof a !== 'object' && typeof b !== 'object'))
|
||||||
return a === b;
|
return a === b;
|
||||||
|
|
||||||
if (a.prototype !== b.prototype) return false;
|
if (a.prototype !== b.prototype) return false;
|
||||||
let keys = Object.keys(a);
|
|
||||||
|
const keys = Object.keys(a);
|
||||||
if (keys.length !== Object.keys(b).length) return false;
|
if (keys.length !== Object.keys(b).length) return false;
|
||||||
|
|
||||||
return keys.every(k => equals(a[k], b[k]));
|
return keys.every(k => equals(a[k], b[k]));
|
||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user