Check if two values are deeply equivalent
compare values of any type for equility
With your favorite package manager:
then in your app:
var equal = require'equals'
equal takes as many arguments as you like of any type you like and returns a boolean result. Primitive types are equal if they are
===. While composite types, i.e. Objects and Arrays, are considered equal if they have both the same structure and each sub-value is also
equal. Circular references in composite structures are supported.
equala : 2 3 b : 4a : 2 3 b : 4// => true
equalx : 5 y : 6x : 5// => false
Same structure, different values:
equala: 1 2 b : 4a: 2 3 b : 4// => false
equal0 1 // => false
Some possible gotchas:
nullis not equal to
NaNis equal to
NaN(normally not the case).
-0is equal to
- Strings will not coerce to numbers.
- Non enumerable properties will not be checked. They can't be.
arguments.calleeis not considered when comparing arguments