Prototype Hash Processing


Hash can be thought of as an associative array binding unique keys to values. Only difference is that you can use any string as an index instead of just using a number as index.

Creating a Hash

There are two ways to construct a Hash instance:

  • Use JavaScript keyword new.
  • Using Prototype Utility function $H.

To create an empty hash you call any of the constructor methods without arguments, too.

Following is the example showing how to create hash, setting values and getting values in a simple way:

// Creating Hash
var myhash = new Hash();
var yourhash = new Hash( {fruit: 'apple'} );
var hishash = $H( {drink: 'pepsi'} );

// Set values in terms of key and values.
myhash.set('name', 'Bob');

// Get value of key 'name' as follows.

// Unset a key & value

To understand it in better way you can Try it yourself.

Prototype provides a wide range of methods to evaluate Hash with ease. This tutorial will explain every method in detail with suitable examples.

Here is a complete list of all the methods related to Hash.

Prototype Hash Methods

NOTE: Make sure you at least have the version 1.6 of prototype.js.

clone()Returns a clone of hash.
each()Iterates over the name/value pairs in the hash.
get()Returns the value of the hash key's property.
inspect()Returns the debug-oriented string representation of the hash.
keys()Provides an Array of keys (that is, property names) for the hash.
merge()Merges object to hash and returns the result of that merge.
remove()Removes keys from a hash and returns their values. This method has been deprecated in version 1.6.
set()Sets the hash key's property to value and returns value.
toJSON()Returns a JSON string.
toObject()Returns a cloned, vanilla object.
toQueryString()Turns a hash into its URL-encoded query string representation.
unset()Deletes the hash key's property and returns its value.
update()Updates hash with the key/value pairs of object. The original hash will be modified.
values()Collects the values of a hash and returns them in an array.