在写js的时候,碰到需要使用类似hashmap的情况。
1、有一种比较简单的实现办法,但是使用起来局限性比较大。
var obj1={"a":1,"b":2};
alert(obj1["a"]);
这是一种功能非常简单的键值对,只能够小范围的定义和取值。
2、自己写js函数实现,使用更广,可以直接使用。
定义函数:
function Map() {
this.keys = new Array();
this.values= new Array();
//添加键值对
this.set = function (key, value) {
if (this.values[key] == null) {//如键不存在则身【键】数组添加键名
this.keys.push(value);
}
this.values[key] = value;//给键赋值
};
//获取键对应的值
this.get = function (key) {
return this.values[key];
};
//去除键值,(去除键数据中的键名及对应的值)
this.remove = function (key) {
this.keys.remove(key);
this.values[key] = null;
};
//判断键值元素是否为空
this.isEmpty = function () {
return this.keys.length == 0;
};
//获取键值元素大小
this.size = function () {
return this.keys.length;
};
}
调用函数:
var t=new Map();
t.set(‘1’,’2’); //添加
var value1=t.get('1'); //取得键值对相应的值
etc.
这里也体现了JavaScript中面向对象的思想。