Small library to create hashes from objects
npm install es-hashThis is a small module to create hashes from simple objects. The ECMA Standart defines Javascript Objects as unordered,
so you can't just iterate over the object and save a hash for each key value pair, you have to sort it. This module
does that for you so you can easily compare objects that have identical content but are ordered differently.
`` javascript
var hash = require('es-hash');
// Create two objects with identical content in a different order
var obj1 = { bla: 'blub', blub: 'bla' },
obj2 = { blub: 'bla', bla: 'blub' };
// Compare the hashes
console.log('Obj1 - ' + hash(obj1));
console.log('Obj2 - ' + hash(obj2));
`
` javascript
var foo = {};
foo[{bar: 'foo'}] = 'foo';
/*
* Expected output:
* foo
* undefined
*
* Actual output:
* foo
* foo
*/
console.log(foo[{bar: 'foo'}]);
console.log(foo[{}]);
`
You can still use the same syntax if you just override Object.toString and return a hash for the current object.
` javascript
var hash = require('es-hash');
// Save data in an object with an object as a key
Object.prototype.toString = function () {
return '[object Object #'+hash(this)+']';
}
var foo = {};
foo[{bar: 'foo'}] = 'foo';
/*
* Output:
* foo
* undefined
*/
console.log(foo[{bar: 'foo'}]);
console.log(foo[{}]);
`
$ nodeunit test.js
``