基于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;

 

转载于:https://www.cnblogs.com/ytls/p/3373698.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值