最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

js模拟hashtable的简单实例_javascript技巧

来源:动视网 责编:小采 时间:2020-11-27 21:20:33
文档

js模拟hashtable的简单实例_javascript技巧

js模拟hashtable的简单实例_javascript技巧: 代码如下:function Hashtable()//自定义hashtable{ this._hash = new Object(); this.add = function(key, value) { if (typeof (key) != undefined) { if (this.contains(key) == false) { thi
推荐度:
导读js模拟hashtable的简单实例_javascript技巧: 代码如下:function Hashtable()//自定义hashtable{ this._hash = new Object(); this.add = function(key, value) { if (typeof (key) != undefined) { if (this.contains(key) == false) { thi


代码如下:
function Hashtable()//自定义hashtable
{
this._hash = new Object();
this.add = function(key, value) {
if (typeof (key) != "undefined") {
if (this.contains(key) == false) {
this._hash[key] = typeof (value) == "undefined" ? null : value;
return true;
} else {
return false;
}
} else {
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]) != "undefined"; }
this.clear = function() { for (var k in this._hash) { delete this._hash[k]; } }
}

代码如下:
// 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;
}
}

测试代码:
//员工
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);

}

文档

js模拟hashtable的简单实例_javascript技巧

js模拟hashtable的简单实例_javascript技巧: 代码如下:function Hashtable()//自定义hashtable{ this._hash = new Object(); this.add = function(key, value) { if (typeof (key) != undefined) { if (this.contains(key) == false) { thi
推荐度:
标签: js 实例 javascript
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top