Maison  >  Article  >  interface Web  >  Un exemple simple de js simulant les compétences hashtable_javascript

Un exemple simple de js simulant les compétences hashtable_javascript

WBOY
WBOYoriginal
2016-05-16 16:56:461005parcourir

复制代码 代码如下 :

function Hashtable()//自定义hashtable
{
    this._hash = new Object();
    this.add = function(key, value) {
        if (typeof (key) != "undefined") {
             if (this. contient(key) == false) {
                this._hash[key] = typeof (value) == "undefined" ? null : valeur;
                return true;
            } else {
                return false;
            }
        } else {
            return false;
        }
    }
    ceci .remove = function(key) { delete this._hash[key]; }
    this.count = function() { var i = 0; for (var k dans this._hash) { i ; } retourne je; }
    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]; } >
}

复制代码 代码如下 :

//table de hachage js
fonction HashTable() {

this.ObjArr = {};

this.Count = 0;

//Ajouter
this.Add = function(key, value) {
if (this.ObjArr.hasOwnProperty(key)) {
return false; //Si la clé existe déjà, faites ne pas l'ajouter
}
else {
this.ObjArr[key] = value;
this.Count ;
return true;
}
}

//Qu'il contienne un élément
this.Contains = function(key) {
return this.ObjArr.hasOwnProperty(key);
}

//Obtenir un élément équivaut à this.ObjArr[key]
this.GetValue = function(key) {
if (this.Contains(key)) {
return this ObjArr[. ];
                                                                                                                                                                                                                                                                             ; 🎜> }

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

this.Count- - ;

}
}

// Effacer
this.Clear = function() {
this.ObjArr = {}; this.Count = 0;
}

}


Code de test :
//Employé
fonction employé(id, userName) {
this.id = id;
this.userName = userName;
}

test de fonction() {

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

for (var i = 1; i < 6; i ) {

tmpEmployee = nouvel employé (i, "Employee_" i);

ht.Add(i, tmpEmployee);

}
for (var i = 1; i <= ht.Count; i ) {
alert(ht.GetValue(i ).userName); //En fait équivalent à 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("Id de l'employé :" result.id ";UserName:" result.userName);
}
ht.Add(2, "Cette clé existe déjà !"); //L'ajout n'est pas valide
//ht.Clear(); //Effacer
alert(ht.Count);

}


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn