> 웹 프론트엔드 > JS 튜토리얼 > 자바스크립트 해시테이블 구현 code_javascript 기술

자바스크립트 해시테이블 구현 code_javascript 기술

WBOY
풀어 주다: 2016-05-16 18:44:59
원래의
1284명이 탐색했습니다.
코드 복사 코드는 다음과 같습니다.

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');
hashTable.put(2,'88a') hashTable.put(3,'88a'); //해시테이블 트래버스, java의 foreach for (var key in hashTable.keys()){ /* 키 메서드 사용*/ alert(hashTable.get(key)) //Traverse value by key } //Traverse hashtable, c# 및 java의 foreach와 동일 for (hashTable.hashtable의 var key)){ /* 해시테이블 속성 사용*/
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에 대한 다른 메서드는 사용하기 간단하므로 독자가 직접 테스트할 수 있습니다(생략)

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿