相思资源网 Design By www.200059.com
修正hashtableobj.set("length","0") bug
可以设置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
可以设置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
相思资源网 Design By www.200059.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
相思资源网 Design By www.200059.com
暂无javascript hashtable 修正版 下载的评论...
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?