inspect-js/node-deep-equal

node's assert.deepEqual algorithm

JavaScript

792

199 commits

updated Mar 16, 2026

See the code

README

deep-equal Version Badge

Node's assert.deepEqual() algorithm as a standalone module, that also works in browser environments.

It mirrors the robustness of node's own assert.deepEqual and is robust against later builtin modification.

github actions coverage License Downloads

npm badge

example

var equal = require('deep-equal');
console.dir([
    equal(
        { a : [ 2, 3 ], b : [ 4 ] },
        { a : [ 2, 3 ], b : [ 4 ] }
    ),
    equal(
        { x : 5, y : [6] },
        { x : 5, y : 6 }
    )
]);

methods

var deepEqual = require('deep-equal')

deepEqual(a, b, opts)

Compare objects a and b, returning whether they are equal according to a recursive equality algorithm.

If opts.strict is true, use strict equality (===) to compare leaf nodes. The default is to use coercive equality (==) because that's how assert.deepEqual() works by default.

install

With npm do:

npm install deep-equal

test

With npm do:

npm test
assert
deepequal
equal
javascript
loose
node
nodejs
strict

inspect-js/node-deep-equal

node's assert.deepEqual algorithm

JavaScript

792

199 commits

updated Mar 16, 2026

See the code

README

deep-equal Version Badge

Node's assert.deepEqual() algorithm as a standalone module, that also works in browser environments.

It mirrors the robustness of node's own assert.deepEqual and is robust against later builtin modification.

github actions coverage License Downloads

npm badge

example

var equal = require('deep-equal');
console.dir([
    equal(
        { a : [ 2, 3 ], b : [ 4 ] },
        { a : [ 2, 3 ], b : [ 4 ] }
    ),
    equal(
        { x : 5, y : [6] },
        { x : 5, y : 6 }
    )
]);

methods

var deepEqual = require('deep-equal')

deepEqual(a, b, opts)

Compare objects a and b, returning whether they are equal according to a recursive equality algorithm.

If opts.strict is true, use strict equality (===) to compare leaf nodes. The default is to use coercive equality (==) because that's how assert.deepEqual() works by default.

install

With npm do:

npm install deep-equal

test

With npm do:

npm test
assert
deepequal
equal
javascript
loose
node
nodejs
strict

Project health

Overall

3.8/10

Maintained

0/10

Code review

0/10
OpenSSF Scorecard

Significant stargazers

Arunoda Susiripala

2,629 followers · starred Mar 2013

iamdoron

8 followers · starred Aug 2013

Kostis Karantias

103 followers · starred Jun 2018

bravo-kernel

42 followers · starred Mar 2025