Hash

Here is the documentation for Hash.js.

The Hash returns a hash map object with various helper functions for managing a JavaScript object. We must use .set, .get, and .remove to add/change, retrieve and remove values; we must not access the internal object directly. null values are allowed. Pass in an object to convert to a Hash.

var hash = new Hash({a: 'hi', b: 'world', c: 'howdy'});

Hash.set, .get, .remove

These functions must be used to interact with the data in a Hash.

var hash = new Hash({a: 'hi', b: 'world', c: 'howdy'});
hash.set('a', 'blah');
hash.remove('b');
console.log(hash.get('a')); /*blah*/
console.log(hash.get('b')); /*undefined*/
execute this code

Hash.has

Check for a key in the map.

var hash = new Hash({a: 'hi', b: 'world', c: 'howdy'});
console.log(hash.has('c')); /* true */
console.log(hash.has('d')); /* false */
execute this code

Hash.hasValue

Checks for a value in the map.

var hash = new Hash({a: 'hi', b: 'world', c: 'howdy'});
console.log(hash.hasValue('hi')); /* true */
console.log(hash.hasValue('Guttentag!')); /* false */
execute this code

Hash.each

Iterate over the Hash and execute a function for the value of each property. Takes as an optional second argument (the first is the function) a bind object.

var hash = new Hash({a: 'hi', b: 'world', c: 'howdy'});
/*alert 'hi', 'world', and 'howdy'*/
hash.each(function(val){
	alert(val);
});
execute this code

Hash.keyOf

Hash.keyOf returns the key for a specified value:

var hash = new Hash({a: 'hi', b: 'world', c: 'howdy'});
hash.keyOf('howdy'); //c
execute this code

Hash.extend, Hash.combine

Add the key values of the passed in object to the hash map. Duplicate values are overwritten.

var hash = new Hash({a: 'hi', b: 'world', c: 'howdy'});
hash.extend({c:'blah', d:'something'});
/*hash now has a, b, c, and d*/
console.log(hash.get('c')); /* 'blah' */
console.log(hash.getKeys());
console.log(hash.getValues());
execute this code

Hash.combine will do the same thing but you can pass in more than one item. Note that combine excludes duplicates, unlike extend which overwrites.

var hash = new Hash({a: 'hi', b: 'world', c: 'howdy'});
hash.combine({c:'blah', d:'something', e: 'cakes', f: 'cookies'});
/*hash now has a, b, c, d, e, and f*/
console.log(hash.get('c')); /* 'howdy' */
console.log(hash.getKeys());
console.log(hash.getValues());
execute this code

Hash.empty

This has changed in MooTools 1.1 - now Hash.empty clears the contents of the Hash and returns itself. It used to return true (if the Hash was empty) or false.

var hash = new Hash({a: 'hi', b: 'world', c: 'howdy'});
hash.empty();
console.log(hash.getKeys().length); //zero
execute this code

Hash.getKeys, .getValues

Returns an array of the keys and values of the hash map.

var hash = new Hash({a: 'hi', b: 'world', c: 'howdy'});
console.log(hash.getKeys()); /*	[a, b, c]	*/
console.log(hash.getValues()); /*	['hi', 'world', 'howdy']	*/
execute this code

$H

Just a short hand for new Hash();

Deprecated Methods

The following methods are no longer available in MooTools 1.2:

  • Hash.length (use Hash.getKeys().length)
  • Hash.hasKey (use Hash.has)
  • Hash.keys (use Hash.getKeys)
  • Hash.values (use Hash.getValues)

mootorial/03-native/04-hash.txt · Last modified: 2011/01/14 03:51 by ralph