gerhardberger / eqjs

A JavaScript module for doing equals, deep equals and creating custom equalizer functions.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Eq.js

Eq.js is a JavaScript module, that let you do simple, deep and custom equalisations.

Simple

	eq(4, 4, 4) // true

	eq('foo', 123, true, 'bar') // false

	eq([1,2,3], [2,3,4], [3,4,5]) // false

	eq({
		force: 'light'
		, name: 'Luke Skywalker'
	}, {
		force: 'light'
		, name: 'Luke Skywalker'
	})
	// true

You can use eq.arr() and eq.obj() too for arrays and objects.

Deep

	eq({
		name: 'Name'
		, friends: ['A', 'B', 'C']
		, school: {
			name: 'School'
			, teachers: ['X', 'Y', 'Z']
		}
	}, {
		name: 'Name'
		, friends: ['A', 'B', 'C']
		, school: {
			name: 'School'
			, teachers: ['X', 'Y', 'Z']
		}
	})
	// true

Custom

You can create custom equalisation to compare things as you want. this contains the eq object.

	eq.add('student', function(a,b) {
		var eq = this
		return eq(a.name, b.name) && eq(a.friends, b.friends)
	})

	eq.student({
		name: 'Name'
		, friends: ['A', 'B', 'C']
		, school: {
			name: 'School'
			, teachers: ['X', 'Y', 'Z']
		}
	}, {
		name: 'Name'
		, friends: ['A', 'B', 'C']
		, school: {
			name: 'School'
			, teachers: ['X', 'Y', 'Z']
		}
	}, {
		name: 'Name'
		, friends: ['D', 'E', 'F']
		, school: {
			name: 'School'
			, teachers: ['X', 'Y', 'Z']
		}
	})
	// false

About

A JavaScript module for doing equals, deep equals and creating custom equalizer functions.


Languages

Language:JavaScript 100.0%