hashtableobj.set("length","0") のバグを修正しました大文字と小文字を無視するようにキーを設定できますハッシュテーブル オブジェクトのクローンを作成できますobj.valueOf("key"," を使用できます) defalutvalue") を使用してデフォルト値を設定します。お待ちくださいバグ修正へようこそ コードをコピー コードは次のとおりです: <br>// 著者 Birdshome、麻袋@博客园 改版 phito,彭海涛 <br>Object.prototype.Clone = function() <br>{ <br>var objClone; <br>if ( this.constructor == Object ) objClone = new this.constructor(); <br>else objClone = new this.constructor(this.valueOf()); <br>for ( var key in this ) <br>{ <br>if ( objClone[key] != this[key] ) <br>{ <br>if ( typeof(this[key]) == 'オブジェクト' ) <br>{ <br>objClone[キー] = this[キー].Clone(); <br>} <br>else <br>{ <br>objClone[キー] = this[キー]; <br>} <br>} <br>} <br>objClone.toString = this.toString; <br>objClone.valueOf = this.valueOf; <br>objClone を返します; <br>} <br>function Hashtable() { <br>this.clear = hashtable_clear; <br>this.containsKey = hashtable_containsKey; <br>this.containsValue = hashtable_containsValue; <br>this.get = hashtable_get; <br>this.isEmpty = hashtable_isEmpty; <br>this.keys = hashtable_keys; <br>this.put = hashtable_put; <br>this.remove = hashtable_remove; <br>this.size = hashtable_size; <br>this.toString = hashtable_toString; <br>this.values = hashtable_values; <br>this.hashtable = new Object(); <br>this.set = hashtable_set; <br>this.valueOf = hashtable_valueOf; <br>this.clone = hashtable_clone; <br>this.ignoreupper lower = true; <br>//否忽略大小写 <br>} <br>/*=======内部使用のみのプライベート メソッド========*/ <br>function hashtable_clone(){ <br>return this.Clone(); <br>} <br>function hashtable_put(key, value) { <br>if (this.ignoreupper lower && typeof(key) == "string") { <br>key = key.toUpperCase(); <br>} <br>if (key == null || value == null) { <br>throw "NullPointerException {" key "},{" value "}"; <br>} else { <br>this.hashtable[key] = 値; <br>} <br>} <br>function hashtable_set(key, value) { <br>if (this.ignoreupper lower && typeof(key) == "string") { <br>key = key.toUpperCase(); <br>} <br>if (this.containsKey(key)) { <br>this.remove(key); <br>} <br>this.put(key, value); <br>} <br>function hashtable_get(key) { <br>if (this.ignoreupper lower && typeof(key) == "string") { <br>key = key.toUpperCase(); <br>} <br>return this.hashtable[key]; <br>} <br>関数 hashtable_valueOf(key, defvalue) { <br>var ret = this.get(key); <br>if (typeof(ret) == "未定義") { <br>return defvalue; <br>} <br>ret を返します。 <br>} <br>function hashtable_remove(key) { <br>if (this.containsKey(key)) { <br>delete this.hashtable[key] ; <br>} <br>} <br>関数 hashtable_isEmpty() { <br>return (parseInt(this.size()) == 0) ? true: false; <br>} <br>関数 hashtable_size() { <br>var サイズ = 0; <br>for (var i in this.hashtable) { <br>if(typeof(this.hashtable[i])=="function"){ <br>Continue; <br>} <br>if (this.hashtable[i] != null) { <br>サイズ ; <br>} <br>} <br>サイズを返します。 <br>} <br>function hashtable_toString() { <br>var result = ""; <br>for (var i in this.hashtable) { <br>if(typeof(this.hashtable[i])=="function"){ <br>Continue; <br>} <br>if (this.hashtable[i] != null) { <br>result = "{" i ":" this.hashtable[i] "}n"; <br>} <br>} <br>結果を返します。 <br>} <br>関数 hashtable_clear() { <br>this.hashtable = new Object(); <br>} <br>function hashtable_containsKey(key) { <br>if (this.ignoreupper lower && typeof(key) == "string") { <br>key = key.toUpperCase(); <br>} <br>var が存在します = false; <br>for (var i in this.hashtable) { <br>if(typeof(this.hashtable[i])=="function"){ <br>Continue; <br>} <br>if (i == key && this.hashtable[i] != null) { <br>exists = true; <br>休憩; <br>} <br>} <br>戻り値が存在します。 <br>} <br>function hashtable_containsValue(value) { <br>var contains = false; <br>if (value != null) { <br>for (var i in this.hashtable) { <br>if(typeof(this.hashtable[i])=="function"){ <br>Continue; <br>} <br>if (this.hashtable[i] == value) { <br>contains = true; <br>休憩; <br>} <br>} <br>} <br>戻り値には次のものが含まれます。 <br>} <br>関数 hashtable_values() { <br>var 値 = new Object(); <br>for (var i in this.hashtable) { <br>if(typeof(this.hashtable[i])=="function"){ <br>Continue; <br>} <br>if (this.hashtable[i] != null) value.push(this.hashtable[i]); <br>} <br>値を返します。 <br>} <br>関数 hashtable_keys() { <br>var キー = new Object(); <br>for (var i in this.hashtable) { <br>if(typeof(this.hashtable[i])=="function"){ <br>Continue; <br>} <br>keys.push(i); <br>} <br>リターンキー; <br>} <br>function test() { <br>var ht = new Hashtable(); <br>ht.put("3", "ジャクソン"); <br>ht.put("2", "トム"); <br>ht.put("4", 3); <br>ht.set("長さ", 445555); <br>ht.set("ddd", "ddd"); <br>ht.set("インデックス", "ddd"); <br>var et = ht.toString(); <br>ht.ignoreupper lower = false; <br>//忽略大小写 <br>ht.clear(); <br>ht.put("3", "ジャクソン"); <br>ht.put("2", "トム"); <br>ht.remove("2"); <br>ht.put("4", 3); <br>ht.set("長さ", 5); <br>//新しい配列を使用する場合、配列の長さを設定します <br>ht.set("index", "ddd"); <br>ht.set("ddd", "ddd"); <br>alert(et "" ht.toString() "" ht.size()); <br>var cloneobj=ht.clone(); <br>alert(cloneobj.toString()); <br>}<br> より優れた機能を持つハッシュテーブルとハッシュセットを使用したい場合は、次をダウンロードしてください: http://xiazai.jb51.net/201012/yuanma/jshashtable.rar