如何使用js实现哈希表

/**
 * js HashTable哈希表实现
 * 参数及方法说明:
 * 函数名              |说明             |   返回值
 * ---------------------|-------------------|----------
 * add(key,value)       |添加项                |无
 * ----------------------------------------------------
 * getValue(key)        |根据key取值            |object
 * ----------------------------------------------------
 * remove(key)          |根据key删除一项      |无
 * ----------------------------------------------------
 * containsKey(key)     |是否包含某个key      |bool
 * ----------------------------------------------------
 * containsValue(value) |是否包含某个值        |bool
 * ----------------------------------------------------
 * getValues()          |获取所有的值的数组  |array
 * ----------------------------------------------------
 * getKeys()            |获取所有的key的数组    |array
 * ----------------------------------------------------
 * getSize()            |获取项总数          |int
 * ----------------------------------------------------
 * clear()              |清空哈希表          |无
 */
function HashTable() {
    var size = 0;
    var entry = new Object();
    this.add = function (key, value) {
        if (!this.containsKey(key)) {
            size++;
        }
        entry[key] = value;
    }
    this.getValue = function (key) {
        return this.containsKey(key) ? entry[key] : null;
    }
    this.remove = function (key) {
        if (this.containsKey(key) && (delete entry[key])) {
            size--;
        }
    }
    this.containsKey = function (key) {
        return (key in entry);
    }
    this.containsValue = function (value) {
        for (var prop in entry) {
            if (entry[prop] == value) {
                return true;
            }
        }
        return false;
    }
    this.getValues = function () {
        var values = new Array();
        for (var prop in entry) {
            values.push(entry[prop]);
        }
        return values;
    }
    this.getKeys = function () {
        var keys = new Array();
        for (var prop in entry) {
            keys.push(prop);
        }
        return keys;
    }
    this.getSize = function () {
        return size;
    }
    this.clear = function () {
        size = 0;
        entry = new Object();
    }
}

你可能感兴趣的:(如何使用js实现哈希表)