Skip to content

epoberezkin/NanoEqual

 
 

Repository files navigation

Build Status

NanoEqual

Simple and fast realization of deep equal.

How to use it?

var nanoEqual = require('nano-equal');

if(nanoEqual(a, b)) {
    //....
}

What is that?

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

How to install it?

npm install nano-equal --save

or

bower install nano-equal --save

How to build it?

gulp

About

Simple and fast realization of deep equal

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%