diff --git a/src/deepEqual.js b/src/deepEqual.js index 860208b..89eeeb4 100644 --- a/src/deepEqual.js +++ b/src/deepEqual.js @@ -20,7 +20,32 @@ * @return {boolean} */ function deepEqual(a, b) { - // write code here + if (typeof a !== typeof b) { + return false; + } + + if ((typeof a !== 'object' && typeof b !== 'object') + || (a === null || b === null)) { + return a === b; + } + + if (typeof a === 'object' && typeof b === 'object') { + if (Object.keys(a).length !== Object.keys(b).length) { + return false; + } + + for (const key in a) { + if (!b.hasOwnProperty(key)) { + return false; + } + + if (!deepEqual(a[key], b[key])) { + return false; + } + } + + return true; + } } module.exports = deepEqual;