Update equals.md

This commit is contained in:
Angelos Chalaris
2018-01-15 18:54:27 +02:00
committed by GitHub
parent e6fd4f37d2
commit 1f2e4e0e27

View File

@ -2,7 +2,7 @@
Performs a deep comparison between two values to determine if they are equivalent. Performs a deep comparison between two values to determine if they are equivalent.
Check if the two values are identical, if they are both `Date` objects with the same time, using `Date.getTime()` or if they are both non-object values with an equivalent value (non-strict comparison). Check if the two values are identical, if they are both `Date` objects with the same time, using `Date.getTime()` or if they are both non-object values with an equivalent value (strict comparison).
Check if only one value is `null` or `undefined` or if their prototypes differ. Check if only one value is `null` or `undefined` or if their prototypes differ.
If none of the above conditions are met, use `Object.keys()` to check if both values have the same number of keys, then use `Array.every()` to check if every key in the first value exists in the second one and if they are equivalent by calling this method recursively. If none of the above conditions are met, use `Object.keys()` to check if both values have the same number of keys, then use `Array.every()` to check if every key in the first value exists in the second one and if they are equivalent by calling this method recursively.
@ -12,7 +12,7 @@ const equals = (a, b) => {
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 === null || a === undefined || b === null || b === undefined) if (a === null || a === undefined || b === null || b === undefined)
return false; return false;
if (a.prototype !== b.prototype) return false; if (a.prototype !== b.prototype) return false;