Update equals.md

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

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;