天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

js 模擬實現類似c#下的hashtable的簡單功能代碼

如果在c#中,我們只要用hashtable或者dictionary根據key取value的特性,就可以很輕松地實現這個功能了。其實我們稍作處理,js也可以實現類似hashtable的功能。下面總結一下筆者開發中用到的實現方式,貼代碼為主。
1、實現思路:主要就是利用原型(prototype)的hasOwnProperty方法,確定對象中的項是該添加、移除還是取出某個匹配的項等。hasOwnProperty比遍歷數組取值靈巧快速的地方在于:至少從代碼上來看,它是O(1)復雜度的。
2、實現代碼
復制代碼 代碼如下:
// js哈希表
function HashTable() {
this.ObjArr = {};
this.Count = 0;
//添加
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.ObjArr[key];
}
else {
throw Error("Hashtable not cotains the key: " + String(key)); //腳本錯誤
//return;
}
}
//移除
this.Remove = function(key) {
if (this.Contains(key)) {
delete this.ObjArr[key];
this.Count--;
}
}
//清空
this.Clear = function() {
this.ObjArr = {}; this.Count = 0;
}
}

3、測試代碼
代碼
復制代碼 代碼如下:
//員工
function employee(id, userName) {
this.id = id;
this.userName = userName;
}
function test() {
var ht = new HashTable();
var tmpEmployee = null;
for (var i = 1; i < 6; i++) {
tmpEmployee = new employee(i, "Employee_" + i);
ht.Add(i, tmpEmployee);
}
for (var i = 1; i <= ht.Count; i++) {
alert(ht.GetValue(i).userName); //其實等價于ht.ObjArr[i].userName
//alert(ht.ObjArr[i].userName);
}
ht.Remove(1);
alert(ht.Contains(1)); //false
alert(ht.Contains(2)); //true
//alert(ht.GetValue(1)); //異常
var result = ht.GetValue(2);
if (result != null) {
alert("Employee Id:" + result.id + ";UserName:" + result.userName);
}
ht.Add(2, "這一個key已經存在!"); //Add無效
//ht.Clear(); //清空
alert(ht.Count);
}

調用的時候很簡單,只要new一個hashtable對象,常見的功能就都有了。是不是很簡單?Enjoy it。
小結:原型鏈(prototype鏈)和作用域鏈是js的兩個最核心的部分。學懂并悟透它們,許多復雜問題都會迎刃而解;好好利用它們的特性,我們可以輕松實現非常靈活高效的功能。

JavaScript技術js 模擬實現類似c#下的hashtable的簡單功能代碼,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产 日韩 欧美 综合 激情 | 日本阿v片在线播放免费 | 国产激情文学 | 日本后进式猛烈xx00动态图 | 亚洲欧美视频在线 | 天天噜日日噜夜夜噜 | 国产一区内射最近更新 | 亚洲精品成人无码区一在线观看 | 美女在线永久免费网站 | 亚洲色图在线播放 | 久久精品热播在线看 | 精选国产AV精选一区二区三区 | 国产亚洲中文字幕视频 | 门鱼电影完整版免费版 | 成人午夜剧场 | 捆绑白丝粉色JK震动捧喷白浆 | 亚洲刺激视频 | 理论937| 姐姐不~不可以动漫在线观看 | 2020亚洲国产在线播放在线 | 亚洲午夜精品一区二区公牛电影院 | 一个人免费观看HD完整版 | 99热久久这里只精品国产WWW | 久久香蕉国产免费天天 | 日本高清天码一区在线播放 | 两性午夜刺激爽爽视频 | 久久精品一区二区影院 | 韩国hd高清xxx | 亚洲AV久久无码精品国产网站 | 久久这里只有是精品23 | 性色AV乱码一区二区三区视频 | 国精品产露脸偷拍视频 | 午夜性色一区二区三区不卡视频 | 中国videos1314tv| 污污内射在线观看一区二区少妇 | 妖精视频免费看 | 亚洲国产成人精品青青草原100 | 亚洲VA天堂VA欧美VA在线 | 久久机热视频 这里只有精品首页 | 抽插内射高潮呻吟爆乳 | 中文字幕亚洲男人的天堂网络 |