复制代码代码如下:
ฟังก์ชั่น Hashtable()//自定义hashtable
-
this._hash = วัตถุใหม่ ();
this.add = ฟังก์ชั่น (คีย์, ค่า) {
ถ้า (typeof (คีย์) != "ไม่ได้กำหนด") {
ถ้า (this.contains (คีย์) == false) {
this._hash[key] = typeof (value) == "undef" ? null : ค่า;
กลับเป็นจริง;
} อื่น {
กลับเท็จ;
-
} อื่น {
กลับเท็จ;
-
-
this.remove = function(key) { ลบ this._hash[คีย์]; -
this.count = ฟังก์ชั่น () { var i = 0; สำหรับ (var k ใน this._hash) { i++; } ส่งคืนฉัน; -
this.items = function(key) { return this._hash[key]; -
this.contains = function(key) { return typeof (this._hash[key]) != "ไม่ได้กำหนด"; -
this.clear = function() { สำหรับ (var k ใน this._hash) { ลบ this._hash[k]; -
-
复制代码代码如下:
// js哈希表
ฟังก์ชั่น HashTable() {
นี้.ObjArr = {};
นี่นับ = 0;
//添加
this.Add = ฟังก์ชั่น (คีย์, ค่า) {
ถ้า (this.ObjArr.hasOwnProperty (คีย์)) {
กลับเท็จ; //如果键已经存在,不添加
-
อื่น {
this.ObjArr[คีย์] = ค่า;
นี่นับ++;
กลับเป็นจริง;
-
-
//是否包含某项
this.Contains = ฟังก์ชั่น (คีย์) {
ส่งคืน this.ObjArr.hasOwnProperty (คีย์);
-
//取某一项 其实等价于this.ObjArr[คีย์]
this.GetValue = ฟังก์ชั่น (คีย์) {
ถ้า (this.Contains (คีย์)) {
ส่งคืนสิ่งนี้ ObjArr [คีย์];
-
อื่น {
Throw Error("Hashtable ไม่มีคีย์: " + String(key)); //脚本错误
//กลับ;
-
-
//移除
this.Remove = ฟังก์ชั่น (คีย์) {
ถ้า (this.Contains (คีย์)) {
ลบสิ่งนี้.ObjArr[คีย์];
นี่นับ--;
-
-
//清空
นี้.ล้าง = ฟังก์ชั่น() {
นี้.ObjArr = {}; นี่นับ = 0;
-
-
测试代码:
//员工
พนักงานฟังก์ชั่น (id, ชื่อผู้ใช้) {
this.id = ไอดี;
this.userName = ชื่อผู้ใช้;
-
ทดสอบฟังก์ชัน() {
var ht = ใหม่ HashTable();
var tmpEmployee = null;
สำหรับ (var i = 1; i < 6; i++) {
tmpEmployee = พนักงานใหม่ (i, "พนักงาน_" + i);
ht.Add(i, tmpEmployee);
-
สำหรับ (var i = 1; i <= ht.Count; i++) {
การแจ้งเตือน (ht.GetValue(i).ชื่อผู้ใช้); //其实等价于ht.ObjArr[i].ชื่อผู้ใช้
//alert(ht.ObjArr[i].ชื่อผู้ใช้);
-
ht.ลบ(1);
alert(ht.Contains(1)); //เท็จ
alert(ht.Contains(2)); //จริง
//alert(ht.GetValue(1)); //异常
ผลลัพธ์ var = ht.GetValue(2);
ถ้า (ผลลัพธ์ != null) {
alert("รหัสพนักงาน:" + result.id + ";ชื่อผู้ใช้:" + result.userName);
-
ht.Add(2, "key已经存在!"); //เพิ่ม无效
//ht.Clear(); //清空
การแจ้งเตือน (ht.นับ);
-