Home > Article > Web Front-end > A simple example of js simulating hashtable_javascript skills
this.ObjArr = {};
this.Count = 0;
//Add
this.Add = function(key, value) {
if (this.ObjArr.hasOwnProperty(key)) {
return false; //If the key already exists, do not add it
}
else {
this.ObjArr[key] = value;
this.Count ;
return true;
}
}
//Whether it contains an item
this.Contains = function(key) {
return this.ObjArr.hasOwnProperty(key);
}
//Getting an item is equivalent to this.ObjArr[key]
this.GetValue = function(key) {
if (this.Contains(key)) {
return this. ObjArr[key];
🎜> }
//Remove
this.Remove = function(key) {
if (this.Contains(key)) {
delete this.ObjArr[key];
}
}
// Clear
this.Clear = function() {
this.ObjArr = {}; this.Count = 0;
}
Test code:
//Employee
function employee(id, userName) {
this.id = id;
this.userName = userName;
}
function test() {
var ht = new HashTable();
var tmpEmployee = null;
tmpEmployee = new employee(i, "Employee_" i);
ht.Add(i, tmpEmployee); }
for (var i = 1; i <= ht.Count; i ) {
alert(ht.GetValue(i ).userName); //Actually equivalent to 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)); //Exception
var result = ht.GetValue(2);
if (result != null) {
alert("Employee Id:" result.id ";UserName:" result.userName);
}
ht.Add(2, "This key already exists!"); //Add is invalid
//ht.Clear(); //Clear
alert(ht.Count);
}