All open source

deep-equal-js

A fast, focused deep-equality utility for JavaScript and TypeScript.

For comparing structured values where the edge cases actually occur.

npm install deep-equal-js
GitHubnpm

Purpose

One function, one job: compare two values structurally, and do it fast enough to sit inside a render loop. That includes the cases that usually leak through: Maps and Sets, typed arrays, dates, regular expressions, primitive wrappers, and NaN comparing equal to itself.

Supported values

  • Objects
  • Arrays
  • Maps
  • Sets
  • TypedArray
  • RegExp
  • Date
  • String / Number / Boolean wrappers
  • Primitives
  • null
  • undefined
  • NaN

Example

import deepEqual from 'deep-equal-js';

deepEqual({ a: 1 }, { a: 1 });  // true
deepEqual([1, 2], [1, 2]);      // true
deepEqual(NaN, NaN);            // true
deepEqual(9, '9');              // false
deepEqual(null, undefined);     // false