From 1f2e4e0e27f3d0618007a00f0d836656232d5fb5 Mon Sep 17 00:00:00 2001 From: Angelos Chalaris Date: Mon, 15 Jan 2018 18:54:27 +0200 Subject: [PATCH] Update equals.md --- snippets/equals.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/snippets/equals.md b/snippets/equals.md index 75be4aba9..535531bf9 100644 --- a/snippets/equals.md +++ b/snippets/equals.md @@ -2,7 +2,7 @@ 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. 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) return a.getTime() === b.getTime(); if (!a || !b || (typeof a != 'object' && typeof b !== 'object')) - return a == b; + return a === b; if (a === null || a === undefined || b === null || b === undefined) return false; if (a.prototype !== b.prototype) return false;