hash
v0.2.1
Published
Safely use a JavaScript object as hash
Downloads
7,850
Maintainers
Readme
__ __ _
/ /_ ____ / / () / __ / __ `/ / __ \ / / / / / / / // ( ) / / / / ( ) // //_,/// /()/ // v0.2.1 //
hash.js is a simple way to safely use a JavaScript object as hash.
Fast: Usage of a regular object as the hash
Safe: Any key can be used. Keys with names that start with "__" are internally escaped to circumvent the mess that JS implementations induce with "magic" properties like proto, count, parent
Installation
npm install hash
Example in node.js
var hash = require('hash')
var existingDataWithEscapedKeys = { __: 1, b: 2, 'parent%': 3 }
var myHash = new hash(existingDataWithEscapedKeys /* optional */)
myHash.set('a', 123) myHash.set('proto', 'value')
myHash.get('parent') // 3 myHash.get('a') // 123 myHash.get('proto') // 'value'
myHash.has('constructor') // false
myHash.del('a')
myHash.get('a') // undefined
myHash.del('parent')
myHash.getData() // { __: 1, b: 2, 'proto%': 'value' }
myHash.forEach(function iterator (value, key) {
// ...
} /*, optionalThisArg */)
Tested in
node.js IE 5.5+, FF 3+, Chrome 1+, Opera 10+, Safari 4+ Mobile Safari 4.0
Further reads
http://www.devthought.com/2012/01/18/an-object-is-not-a-hash/ http://www.2ality.com/2012/01/objects-as-maps.html