复制代码代码如下:
function Hashtable()// Funktion Hashtable
{
this._hash = new Object();
this.add = function(key, value) {
if (typeof (key) != "undefiniert") {
if (this.contains(key) == false) {
this._hash[key] = typeof (value) == "undefiniert" ? null: Wert;
return true;
} anders {
return false;
}
} anders {
return false;
}
}
this.remove = function(key) { delete this._hash[key]; }
this.count = function() { var i = 0; for (var k in this._hash) { i++; } return i; }
this.items = function(key) { return this._hash[key]; }
this.contains = function(key) { return typeof (this._hash[key]) != "undefiniert"; }
this.clear = function() { for (var k in this._hash) { delete this._hash[k]; } }
}
复制代码代码如下:
// js哈希表
Funktion HashTable() {
this.ObjArr = {};
this.Count = 0;
//添加
this.Add = function(key, value) {
if (this.ObjArr.hasOwnProperty(key)) {
return false; //如果键已经存在,不添加
}
anders {
this.ObjArr[key] = value;
this.Count++;
return true;
}
}
//是否包含某项
this.Contains = function(key) {
return this.ObjArr.hasOwnProperty(key);
}
//Erweiterte Schlüsselwörter: this.ObjArr[key]
this.GetValue = function(key) {
if (this.Contains(key)) {
return this.ObjArr[key];
}
anders {
throw Error("Hashtable enthält den Schlüssel nicht: " + String(key)); //脚本错误
//zurückkehren;
}
}
//移除
this.Remove = function(key) {
if (this.Contains(key)) {
delete this.ObjArr[key];
this.Count--;
}
}
//清空
this.Clear = function() {
this.ObjArr = {}; this.Count = 0;
}
}
Beschreibung:
//员工
Funktion Mitarbeiter(id, Benutzername) {
this.id = id;
this.userName = userName;
}
Funktionstest() {
var ht = new HashTable();
var tmpEmployee = null;
für (var i = 1; i < 6; i++) {
tmpEmployee = neuer Mitarbeiter(i, „Employee_“ + i);
ht.Add(i, tmpEmployee);
}
for (var i = 1; i <= ht.Count; i++) {
alarm(ht.GetValue(i).userName); //其实等价于ht.ObjArr[i].userName
//alert(ht.ObjArr[i].userName);
}
ht.Remove(1);
alarm(ht.Contains(1)); //FALSCH
alarm(ht.Contains(2)); //WAHR
//alert(ht.GetValue(1)); //异常
var result = ht.GetValue(2);
if (Ergebnis != null) {
Alert("Mitarbeiter-ID:" + result.id + ";Benutzername:" + result.userName);
}
ht.Add(2, "这一个key已经存在!"); //Hinzufügen无效
//ht.Clear(); //清空
alarm(ht.Count);
}