hardJS ES5#141

deepEqual from scratch

Prompt

Implement deepEqual(a, b) — structural equality:

  1. Primitives compare by value; NaN equals NaN (unlike ===)
  2. Arrays: same length, elements deep-equal in order
  3. Plain objects: same key set (an explicit undefined value still counts as a key), values deep-equal
  4. null equals only null — remember typeof null === 'object'
  5. No JSON.stringify — it lies about key order, undefined, and NaN

Hints

Solution

Your Code

20 min

Tests

Click Run to test your code