deepEqual
Test for deep equality between two values.
Usage
var deepEqual = require( '@stdlib/assert/deep-equal' );
deepEqual( a, b )
Returns a boolean indicating if a is deep equal to b.
var bool = deepEqual( [ 1, 2, 3 ], [ 1, 2, 3 ] ); // returns true bool = deepEqual( [ 1, 2, 3 ], [ 1, 2, '3' ] ); // returns false bool = deepEqual( { 'a': 2 }, { 'a': [ 2 ] } ); // returns false
Notes
- The function uses strict equality checks (
===) and does not perform any type coercion. - When given two objects, only enumerable own properties are recursively compared.
Examples
var deepEqual = require( '@stdlib/assert/deep-equal' ); var a = [ true, false, true ]; var b = [ true, false, true ]; var bool = deepEqual( a, b ); // returns true b.pop(); bool = deepEqual( a, b ); // returns false a = { 'a': { 'b': { 'c': 'd' } } }; b = { 'a': { 'b': { 'c': 'd' } } }; bool = deepEqual( a, b ); // returns true b.a.b.c = null; bool = deepEqual( a, b ); // returns false a = { 'a': [ { 'b': 0 }, { 'c': 1 } ] }; b = { 'a': [ { 'b': 0 }, { 'c': 1 } ] }; bool = deepEqual( a, b ); // returns true b = { 'a': [ { 'b': [ 0 ] }, { 'c': '1' } ] }; bool = deepEqual( a, b ); // returns false
See Also
@stdlib/assert/is-strict-equal: test if two arguments are strictly equal.@stdlib/assert/is-same-value: test if two arguments are the same value.