var arr = new Array()
arr; ['item1'] = '항목 1의 값';
arr['item2'] = '항목 2의 값'
alert(arr['item1'])
alert( arr[' item2']);
그러나 위의 기능은 실제 요구 사항을 충족하지 않습니다. 또한 아래에서는 쿼리 순회가 불편합니다. js Array를 사용하여 유사한 해시 테이블 기능을 구현할 수 있습니다.
함수 Hashtable(){
this.clear = hashtable_clear;
this.containsKey = hashtable_containsKey;
this.containsValue = hashtable_containsValue
this.isEmpty; hashtable_isEmpty;
this.keys = hashtable_keys;
this.remove = hashtable_remove;
this.toString = hashtable_toString; this.values = hashtable_values;
this.hashtable = new Array();
}
function hashtable_clear(){
this.hashtable = new Array(); >function hashtable_containsKey(key) {
var presents = false
for (var i in this.hashtable) {
if (i == key && this.hashtable[i] != null) {
exists = true;
break;
}
}
return presents;
}
function hashtable_containsValue(value){
var = false; (값 != null) {
for (var i in this.hashtable) {
if (this.hashtable[i] == value) {
contains = true }
}
}
return contain;
}
function hashtable_get(key){
return this.hashtable[key];
}
function hashtable_isEmpty( ){
return (this.size == 0) ? true : false
}
function hashtable_keys(){
varkeys = new Array()
for (var i in this.hashtable) {
if (this.hashtable[i] != null)
keys.push(i)
}
return 키;
}
function hashtable_put( 키, 값){
if (키 == null || 값 == null) {
throw 'NullPointerException {' key '},{' value '}';
}else{
this.hashtable[key] = 값;
}
}
function hashtable_remove(key){
var rtn = this.hashtable[key]
//this.hashtable[key] =null;
this.hashtable.splice(key,1);
return rtn;
}
function hashtable_size(){
var size = 0; in this.hashtable) {
if (this.hashtable[i] != null)
size ;
}
return size;
}
function hashtable_toString(){
var result = '' ;
for (var i in this.hashtable)
{
if (this.hashtable[i] != null)
result = '{' i '}, {' this.hashtable[ i] '}n';
결과 반환
}
function hashtable_values(){
var 값 = new Array(); >for (var i in this.hashtable) {
if (this.hashtable[i] != null)
values.push(this.hashtable[i])
}
반환 값 ;
}
Hastable 클래스 사용 방법:
코드 복사
코드는 다음과 같습니다. 다음:
/ /사용자 정의 해시 테이블 클래스 인스턴스화
var hashTable = new Hashtable()
hashTable.put(0,'abc'); //0이 키입니다. 'abc'는 값
hashTable.put(1,'123');
alert(hashTable. get(key)); //키로 값 탐색
}
alert(hashTable.containsKey(1)); //true를 반환
alert(hashTable.containsKey(4)); 키가 4인 키가 없으면 false를 반환합니다.
alert(hashTable.containsValue('888')); //true를 반환합니다.
alert(hashTable.containsValue('mobidogs')) //값이 없기 때문입니다. 값이 'mobidogs'이면 false를 반환합니다.
hashTable.remove(1); //키가 1인 요소를 제거합니다.
alert(hashTable.containsKey(1)); //키가 1인 요소가 제거되었기 때문입니다. 업스트림 reomve() 메서드에 의해 false 반환
//Hastable에 대한 다른 메서드는 사용하기 간단하므로 독자가 직접 테스트할 수 있습니다(생략)