javascript hashtable 修正版 下载
2010-12-30 00:00
656 查看
修正hashtableobj.set("length","0") bug
可以设置key忽略大小写
可以clone hashtable对象
可以 使用obj.valueOf("key","defalutvalue") 设置默认值等等
欢迎修正bug
如果你想使用功能更好的hashtable和hashset请下载: http://xiazai.jb51.net/201012/yuanma/jshashtable.rar
可以设置key忽略大小写
可以clone hashtable对象
可以 使用obj.valueOf("key","defalutvalue") 设置默认值等等
欢迎修正bug
<html> <head> <script type="text/javascript"> // Authors Birdshome, 麻袋@博客园 改版 phito,彭海涛 Object.prototype.Clone = function() { var objClone; if ( this.constructor == Object ) objClone = new this.constructor(); else objClone = new this.constructor(this.valueOf()); for ( var key in this ) { if ( objClone[key] != this[key] ) { if ( typeof(this[key]) == 'object' ) { objClone[key] = this[key].Clone(); } else { objClone[key] = this[key]; } } } objClone.toString = this.toString; objClone.valueOf = this.valueOf; return objClone; } function Hashtable() { this.clear = hashtable_clear; this.containsKey = hashtable_containsKey; this.containsValue = hashtable_containsValue; this.get = hashtable_get; this.isEmpty = hashtable_isEmpty; this.keys = hashtable_keys; this.put = hashtable_put; this.remove = hashtable_remove; this.size = hashtable_size; this.toString = hashtable_toString; this.values = hashtable_values; this.hashtable = new Object(); this.set = hashtable_set; this.valueOf = hashtable_valueOf; this.clone = hashtable_clone; this.ignoreupperlower = true; //是否忽略大小写 } /*=======Private methods for internal use only========*/ function hashtable_clone(){ return this.Clone(); } function hashtable_put(key, value) { if (this.ignoreupperlower && typeof(key) == "string") { key = key.toUpperCase(); } if (key == null || value == null) { throw "NullPointerException {" + key + "},{" + value + "}"; } else { this.hashtable[key] = value; } } function hashtable_set(key, value) { if (this.ignoreupperlower && typeof(key) == "string") { key = key.toUpperCase(); } if (this.containsKey(key)) { this.remove(key); } this.put(key, value); } function hashtable_get(key) { if (this.ignoreupperlower && typeof(key) == "string") { key = key.toUpperCase(); } return this.hashtable[key]; } function hashtable_valueOf(key, defvalue) { var ret = this.get(key); if (typeof(ret) == "undefined") { return defvalue; } return ret; } function hashtable_remove(key) { if (this.containsKey(key)) { delete this.hashtable[key] ; } } function hashtable_isEmpty() { return (parseInt(this.size()) == 0) ? true: false; } function hashtable_size() { var size = 0; for (var i in this.hashtable) { if(typeof(this.hashtable[i])=="function"){ continue; } if (this.hashtable[i] != null) { size++; } } return size; } function hashtable_toString() { var result = ""; for (var i in this.hashtable) { if(typeof(this.hashtable[i])=="function"){ continue; } if (this.hashtable[i] != null) { result += "{" + i + ":" + this.hashtable[i] + "}\n"; } } return result; } function hashtable_clear() { this.hashtable = new Object(); } function hashtable_containsKey(key) { if (this.ignoreupperlower && typeof(key) == "string") { key = key.toUpperCase(); } var exists = false; for (var i in this.hashtable) { if(typeof(this.hashtable[i])=="function"){ continue; } if (i == key && this.hashtable[i] != null) { exists = true; break; } } return exists; } function hashtable_containsValue(value) { var contains = false; if (value != null) { for (var i in this.hashtable) { if(typeof(this.hashtable[i])=="function"){ continue; } if (this.hashtable[i] == value) { contains = true; break; } } } return contains; } function hashtable_values() { var values = new Object(); for (var i in this.hashtable) { if(typeof(this.hashtable[i])=="function"){ continue; } if (this.hashtable[i] != null) values.push(this.hashtable[i]); } return values; } function hashtable_keys() { var keys = new Object(); for (var i in this.hashtable) { if(typeof(this.hashtable[i])=="function"){ continue; } keys.push(i); } return keys; } function test() { var ht = new Hashtable(); ht.put("3", "Jackson"); ht.put("2", "Tom"); ht.put("4", 3); ht.set("length", 445555); ht.set("ddd", "ddd"); ht.set("index", "ddd"); var et = ht.toString(); ht.ignoreupperlower = false; //忽略大小写 ht.clear(); ht.put("3", "Jackson"); ht.put("2", "Tom"); ht.remove("2"); ht.put("4", 3); ht.set("length", 5); //如果用new Array的话该项会设置Array的长度 ht.set("index", "ddd"); ht.set("ddd", "ddd"); alert(et + "" + ht.toString() + "" + ht.size()); var cloneobj=ht.clone(); alert(cloneobj.toString()); } </script> </head> <body onload="test()"> </body> </html>
如果你想使用功能更好的hashtable和hashset请下载: http://xiazai.jb51.net/201012/yuanma/jshashtable.rar
相关文章推荐
- javascript hashtable 修正版 下载
- 修正下载链接的树莓派Flash教程(前置:Chromium浏览器)
- javascript运行机制之执行顺序详解(修正原作者一处错误)
- 用 HTML5 和 Javascript 仿制一个水果忍者网页版! (直接浏览器在线玩+源代码下载)
- JavaScript组件之JQuery(A~Z)教程(基于Asp.net运行环境)[示例代码下载]
- Android Netroid解析之——断点续传下载及问题修正
- 【javascript】剪贴板功能——ZeroClipboard(修正)
- JavaScript组件之JQuery(A~Z)教程(基于Asp.net运行环境)[示例代码下载]
- JavaScript组件之JQuery(A~Z)教程(基于Asp.net运行环境)[示例代码下载]
- javascript将json格式数组下载为excel表格的方法
- IxEdit傻瓜式JavaScript开发工具(附下载、汉化版、视频教程)
- 【JavaScript】使用form表单实现excel下载模板
- javascript与xmlhttp联合实现文件下载
- javascript 客户端 创建csv并下载(完美支持各浏览器,并解决了中文乱码!!!)
- javascript实战1,打字游戏(26字母的,非网络下载)
- javascript文件下载代码
- Javascript格式化工具及中文语言包下载
- Core JavaScript Guide 下载地址
- 收藏网站制作常用经典ajax.prototype.javascript实例打包下载javascript
- javascript getBoundingClientRect() 来获取页面元素的位置的代码[修正版]第1/2页