ホームページ >ウェブフロントエンド >jsチュートリアル >hashtable_javascript スキルをシミュレートする js の簡単な例

hashtable_javascript スキルをシミュレートする js の簡単な例

WBOY
WBOYオリジナル
2016-05-16 16:56:461026ブラウズ

复制代代码如下:

function Hashtable()//自定义hashtable
{
this._hash = new Object();
this.add = function(key, value) {
if (typeof (key) != "未定義") {
if (this. contains(key) == false) {
this._hash[key] = typeof (value) == "未定義" ? null : 値;
return true;
} else {
return false;
}
} else {
return false;
}
}
これ.remove = function(key) { この._hash[key] を削除します。 }
this.count = function() { var i = 0; for (this._hash の var k) { i ; i を返します。 }
this.items = function(key) { return this._hash[key]; }
this.contains = function(key) { return typeof (this._hash[key]) != "未定義"; }
this.clear = function() { for (var k in this._hash) { delete this._hash[k]; } }
}

复制代码代码如下:

//js ハッシュ テーブル
function HashTable() {

this.ObjArr = {};

this.Count = 0;

//Add
this.Add = function(key, value) {
if (this.ObjArr.hasOwnProperty(key)) {
return false; // キーがすでに存在する場合は、次のようにします。追加しません
}
else {
this.ObjArr[key] = value;
this.Count ;
return true;
}
}

//アイテムが含まれているかどうか
this.Contains = function(key) {
return this.ObjArr.hasOwnProperty(key);
}

//項目の取得は this.ObjArr[key]
this.GetValue = function(key) {
if (this.Contains(key)) {
return this. key];
🎜>}

//削除
this.Remove = function(key) {
if (this.Contains(key)) {
delete this.ObjArr[key];

this.Count- - ;

}
}

// クリア
this.Clear = function() {
this.ObjArr = {}; this.Count = 0;
}

}


テストコード:
//Employee
functionemployee(id, userName) {
this.id = id;
this.userName = userName;
}

関数テスト() {

var ht = new HashTable();
var tmpEmployee = null;

for (var i = 1; i tmpEmployee = newemployee(i, "Employee_" i); ht.Add(i, tmpEmployee);

}
for (var i = 1; i alert(ht.GetValue(i) ).userName); //実際は ht.ObjArr[i].userName
//alert(ht.ObjArr[i].userName);
}
ht.Remove(1); 🎜> アラート(ht.Contains(1)); //false
アラート(ht.Contains(2)) //true
//アラート(ht.GetValue(1)); 🎜> var result = ht.GetValue(2);
if (result != null) {
alert("従業員 ID:" result.id ";UserName:" result.userName);
}
ht.Add(2, "このキーはすでに存在します!"); //追加は無効です
//ht.Clear() //Clear
alter(ht.Count);

}


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。