node's deepEqual and deepStrictEqual algorithm.
Tests for deep equality. Primitive values are compared with the equal
comparison operator ( == ). This only considers enumerable properties.
It does not test object prototypes, attached symbols, or non-enumerable
properties. This can lead to some potentially surprising results. If
strict
is true
then Primitive values are compared with the strict
equal comparison operator ( === ).
Kind: Exported function
Returns: boolean
- true
if actual
and expected
are deemed equal,
otherwise false
.
See: https://nodejs.org/api/assert.html
Param | Type | Description |
---|---|---|
actual | * |
First comparison object. |
expected | * |
Second comparison object. |
[strict] | boolean |
Comparison mode. If set to true use === . |
Example
import deepEqual from 'deep-equal-x';
deepEqual(Error('a'), Error('b'));
// => true
// This does not return `false` because the properties on the Error object
// are non-enumerable:
deepEqual(4, '4');
// => true
deepEqual({a: 4, b: '1'}, {b: '1', a: 4});
// => true
deepEqual(new Date(), new Date(2000, 3, 14));
// => false
deepEqual(4, '4', true);
// => false