2018-07-09 10:27:12 -07:00

42 lines
652 B
JavaScript

/**
* @private
* @constructor
* @property {number} length
*/
function Hash() {
this._ = {};
this._length = 0;
}
Object.defineProperty(Hash.prototype, 'length', {
get: function() {
return this._length;
}
});
Hash.prototype.add = function(key,value) {
this._[key] = value;
this._length++;
};
Hash.prototype.clear = function() {
this._ = {};
this._length = 0;
};
Hash.prototype.forEach = function(cb) {
for(var k in this._) {
cb(k, this._[k]);
}
};
Hash.prototype.get = function(key) {
return this._[key];
};
Hash.prototype.remove = function(key) {
delete this._[key];
this._length--;
};
module.exports = Hash;