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 };