JavaScript中實現鍵值對的方法
在寫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中面向物件的思想。