nano-equal
v2.0.2
Published
Ultra fast and compact implementation of deep equal without any production dependencies.
Readme
NanoEqual
Ultra fast and compact implementation of deep equal without any production dependencies.
Usage
npm install nano-equal --savevar nanoEqual = require('nano-equal');
if (nanoEqual(a, b)) {
//....
}What is that?
This is a compact and fast implementation of deep equal.
Deep equal is an algorithm that comparing two values. If the values are a scalar (string, bool, number), then comparing will be performed thru === operator.
If the values are an object (object, array, function), then comparing will be performed recursively.
Following of the object properties is not important:
var a = {prop1: 'some', prop2: 'some'};
var b = {prop2: 'some', prop1: 'some'};
nanoEqual(a, b); // trueBut following of the array elements is important:
var a = [1, 2, 3];
var b = [3, 2, 1];
nanoEqual(a, b); // falseNaN values and some types of recursion are supported.
Benchmark
The list below is showing the performance comparison nano-equal with other libs:
nanoEqual: 1362.813ms
underscore: 3791.308ms
lodash: 7830.107ms
nodejs: 8272.956ms