基于JavaScript(Node.js)的HashSet实现

原链接:https://code.google.com/p/jshashtable/wiki/HashSet

 1 HashSet = function HashSet() {
 2     if (!(this instanceof HashSet))
 3         return;
 4 
 5     var _data = {};
 6     var _length = 0;
 7     var _DEFAULT = new Date();
 8 
 9     this.contains = function(val) {
10         val = val.toString();
11         return (!!_data[val] && _data.hasOwnProperty(val));
12     };
13 
14     this.add = function(val) {
15         if (!this.contains(val.toString())) {
16             _length++;
17         }
18         _data[val.toString()] = val;
19     };
20 
21     this.remove = function(val) {
22         val = val.toString();
23         if (!this.contains(val)) {
24             return false;
25         } else {
26             delete _data[val.toString()];
27             _length--;
28             return true;
29         }
30     };
31 
32     this.clear = function() {
33         for ( var val in _data) {
34             if (_data.hasOwnProperty(val)) {
35                 delete _data[val];
36             }
37         }
38         _length = 0;
39     };
40 
41     this.isEmpty = function() {
42         return (_length === 0);
43     };
44 
45     this.size = function() {
46         return _length;
47     };
48 
49     this.toArray = function() {
50         _data.length = _length;
51         var arr = Array.prototype.slice.call(_data);
52         delete _data.length;
53         return arr;
54     };
55 }
56 exports.HashSet = HashSet;

 

posted on 2013-10-17 11:08  月涛阑珊  阅读(1914)  评论(0)    收藏  举报