JavaScript Dictionary

by rsutton 19. October 2009 08:04

Here is a JavaScript dictionary I created.  It is nice because you can get all the keys, values, and even access keys by using notation like d.key1.

    1 Dictionary = function(test) {

    2     function isKey(k) {

    3         var ret = true;

    4         if(k == 'set' || k == 'get' || k == 'exists' || k == 'remove' || k == 'keys' || k == 'values' || k == 'kvps')

    5             ret = false;

    6         return ret;

    7     }

    8 

    9     var iStore = {};

   10 

   11     return {

   12         set: function(key,value) {

   13             if(isKey(key))

   14                 this[key] = function() { return value; }();

   15             else

   16                 iStore[key] = function() { return value; }();

   17         },

   18         get: function(key) {

   19             if(isKey(key))

   20                 return this[key];

   21             return iStore[key];   

   22         },

   23         exists: function(key) {

   24             if(isKey(key))

   25                 return this[key] ? true : false;

   26             return iStore[key] ? true : false;

   27         },

   28         remove: function(key) {

   29             if(isKey(key))

   30                 delete this[key];

   31             else

   32                 delete iStore[key];

   33         },

   34         keys: function() {

   35             var ret = [];

   36             for (var i in this) {

   37                 if(isKey(i))

   38                     ret[ret.length] = i;

   39             }

   40             for(var i in iStore)

   41                 ret[ret.length] = i;

   42             return ret;

   43         },

   44         values: function() {

   45             var ret = [];

   46             for (var i in this) {

   47                 if(isKey(i))

   48                     ret[ret.length] = this[i];

   49             }

   50             for (var i in iStore) {

   51                 ret[ret.length] = iStore[i];

   52             }

   53             return ret;

   54         },

   55         kvps: function() {

   56             var ret = {};

   57             for (var i in this) {

   58                 if(isKey(i))

   59                     ret[i] = this[i];

   60             }

   61             for(var i in iStore)

   62                 ret[i] = iStore[i];

   63             return ret;

   64         }

   65     };

   66 };

Tags:

Development

Comments are closed

Powered by BlogEngine.NET 1.4.5.0
Theme by Extensive SEO

Profile

Member of the Church of Jesus Christ of Latter-Day Saints, Developer and IT Professional