ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript ハッシュテーブルの実装コード_JavaScript スキル

JavaScript ハッシュテーブルの実装コード_JavaScript スキル

WBOY
WBOYオリジナル
2016-05-16 18:44:591247ブラウズ
コードをコピーします コードは次のとおりです。

var arr = new Array(); ['item1 '] = 'アイテム 1 の値 ';
arr['item2'] = 'アイテム 2 の値 ';
alert(arr['item1']); arr[' item2']);


しかし、上記の関数は実際の要件を満たしていません。また、以下の配列に基づいて拡張する必要があります。 js 配列を使用して同様のハッシュテーブル関数を実装できます。



コードをコピー コードは次のとおりです: 関数 Hashtable (){
this.clear = hashtable_clear;
this.containsValue = hashtable_containsValue;
this.get = hashtable_get;
this.keys = hashtable_keys;
this.size = hashtable_size;
this.values = hashtable_values;
this.hashtable = new Array();
関数 hashtable_clear(){
this.hashtable = new Array(); >function hashtable_containsKey(key) {
var contains = false;
for (var i in this.hashtable) {
if (i == key && this.hashtable[i] != null) {
存在 = true;
ブレーク;
}
関数 hashtable_containsValue(value){
var contains = false; (値 != null) {
for (this.hashtable の変数 i) {
if (this.hashtable[i] == 値) {
contains = true; >}
}
}
return contains;
}
function hashtable_get(key){
return this.hashtable[key];
function hashtable_isEmpty( ){
return (this.size == 0) ? true : false;
関数 hashtable_keys(){
var キー = new Array(); this.hashtable) {
if (this.hashtable[i] != null)
keys.push(i)
}
戻りキー;
}
関数 hashtable_put( key, value){
if (key == null || value == 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;
}
関数 hashtable_size(){
var size = 0; this.hashtable) {
if (this.hashtable[i] != null)
サイズ ;
}
戻りサイズ;
}
関数 hashtable_toString(){
var result = '' ;
for (this.hashtable の var i)
{
if (this.hashtable[i] != null)
result = '{' i '}, {' this.hashtable[ i] '}n';
}
return result;
関数 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(2,'88a');
hashTable.put(3,'88a'); //Java の C# および foreach に相当するハッシュテーブルをトラバースします。
for (var key in hashTable.keys()){ /* キー メソッドを使用します*/
alert(hashTable.get(key)); // トラバースvalue by key
}
//ハッシュテーブルをトラバースします。C# および Java の foreach に相当します。
for (var key in hashTable.hashtable)){ /* ハッシュテーブル属性を使用します*/
alert(hashTable. get(key)); // キーによる値のトラバース
}
alert(hashTable.containsKey(1)) // true を返す
alert(hashTable.containsKey(4));キー 4 にはキーがありません。Return false
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。