The jQuery hashtable
One of the things missing in javascript is a hashtable implementation. So i decieded
to make one. Along came my very good friend jQuery,
the greatest and most powerfull javascript extention ever made.
var ht = new jQuery.Hashtable();
ht.add("item1","hello");
ht.add("item2","hello again");
var val = ht.get("item1");
ht.remove("item2");
Its as simple at that. I know that is no realy need for jquery in this hashtable, but
i thought it would be fun make it an extension.
/*
jQuery Browser Plugin
* Version 1.1
* 2009-03-09
* URL: http://www.homeofthehip.com
* Description: jQuery hashtable extension.
* Author: Magnus Dunker
* Copyright: Copyright (c) 2009 Magnus Dunker. Use it anyway you like
*/
jQuery.Hashtable = function()
{
this.items=new Array();
this.itemsCount=0;
this.add = function(key,value)
{
if(!this.containsKey(key))
{
this.items[key]=value;
this.itemsCount++;
}
else
throw "key '"+key+"' allready exists."
}
this.get=function(key)
{
if(this.containsKey(key))
return this.items[key];
else
return null;
}
this.remove = function(key)
{
if(this.containsKey(key))
{
delete this.items[key];
this.itemsCount--;
}
else
throw "key '"+key+"' does not exists."
}
this.containsKey= function(key)
{
return typeof(this.items[key])!="undefined";
}
this.containsValue = function containsValue(value)
{
for (var item in this.items)
{
if(this.items[item]==value)
return true;
}
return false;
}
this.contains = function(keyOrValue)
{
return this.containsKey(keyOrValue) || this.containsValue(keyOrValue);
}
this.clear = function()
{
this.items=new Array();
itemsCount=0;
}
this.size = function()
{
return this.itemsCount;
}
this.isEmpty = function()
{
return this.size()==0;
}
};