>  기사  >  웹 프론트엔드  >  hashtable_javascript 기술을 시뮬레이션하는 js의 간단한 예

hashtable_javascript 기술을 시뮬레이션하는 js의 간단한 예

WBOY
WBOY원래의
2016-05-16 16:56:461005검색

复主代码 代码如下:

function Hashtable()//自정义hashtable
{
    this._hash = new Object();
    this.add = function(key, value) {
        if (typeof (key) != "undefine") {
            if (this. 포함(키) == false) {
                this._hash[key] = typeof (값) == "정의되지 않음" ? null : 값;
                true 반환;
            } else {
               false 반환;
            }
        } else {
            false 반환;
        }
    }
    이 .remove = function(key) { 삭제 this._hash[key]; }
    this.count = function() { var i = 0; for (var k in this._hash) { i ; } i를 반환합니다; }
    this.items = function(key) { return this._hash[key]; }
    this.contains = function(key) { return typeof (this._hash[key]) != "정의되지 않음"; }
    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. 키];
                                                                                                    ~                      🎜> }

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

this.Count- - ;

}
}

// 지우기
this.Clear = function() {
this.ObjArr = {}; this.Count = 0;
}

}


테스트 코드:
//Employee
function 직원(id, userName) {
this.id = id;
this.userName = userName;
}

기능 테스트() {

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

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

tmpEmployee = 새 직원(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); 🎜> 경고(ht.Contains(1)); //false
경고(ht.Contains(2)) //true
//alert(ht.GetValue(1)) //예외
var result = ht.GetValue(2);
if (result != null) {
Alert("직원 ID:" result.id ";UserName:" result.userName);
} }


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.