Simple and fast realization of deep equal.
var nanoEqual = require('nano-equal');
if(nanoEqual(a, b)) {
//....
}
This is a small and fast realization of deep equal, that supports CommonJS, AMD ang non-module definition.
Deep equal is an algorithm that comparing two values. If the values has a scalar types(string, bool, number), then comparing will be performed thru === operator.
If the values has an object types(object, array, function), then comparing will be performed recursively.
Following of the object properties is not important:
var a = {prop1: 'some', prop2: 'some'},
b = {prop2: 'some', prop1: 'some'};
nanoEqual(a, b); //true
But following of the array elements is important:
var a = [1, 2, 3],
b = [3, 2, 1];
nanoEqual(a, b); //false
As well, nano-equal supports NaN values and working correctly with recursive structures.
The list below is showing the performance comparison nano-equal with another libs:
nanoEqual: 6543.279ms
underscore: 7452.143ms
nodejs: 9872.526ms
lodash: 10805.514ms
shallow: 10857.361ms
npm install nano-equal --save
or
bower install nano-equal --save
gulp