本文實例講述了JS自定義對象實現Java中Map對象功能的方法。分享給大家供大家參考。具體分析如下:
Java中有集合,Map等對象存儲工具類,這些對象使用簡易,但是在JavaScript中,你只能使用Array對象。
這裡我創建一個自定義對象,這個對象內包含一個數組來存儲數據,數據對象是一個Key,可以實際存儲的內容!
這裡Key,你要使用String類型,和Java一樣,你可以進行一些增加,刪除,修改,獲得的操作。
使用很簡單,我先把工具類給大家看下:
復制代碼 代碼如下:/**
* @version 1.0
* 用於實現頁面 Map 對象,Key只能是String,對象隨意
*/
var Map = function(){
this._entrys = new Array();
this.put = function(key, value){
if (key == null || key == undefined) {
return;
}
var index = this._getIndex(key);
if (index == -1) {
var entry = new Object();
entry.key = key;
entry.value = value;
this._entrys[this._entrys.length] = entry;
}else{
this._entrys[index].value = value;
}
};
this.get = function(key){
var index = this._getIndex(key);
return (index != -1) ? this._entrys[index].value : null;
};
this.remove = function(key){
var index = this._getIndex(key);
if (index != -1) {
this._entrys.splice(index, 1);
}
};
this.clear = function(){
this._entrys.length = 0;;
};
this.contains = function(key){
var index = this._getIndex(key);
return (index != -1) ? true : false;
};
this.getCount = function(){
return this._entrys.length;
};
this.getEntrys = function(){
return this._entrys;
};
this._getIndex = function(key){
if (key == null || key == undefined) {
return -1;
}
var _length = this._entrys.length;
for (var i = 0; i < _length; i++) {
var entry = this._entrys[i];
if (entry == null || entry == undefined) {
continue;
}
if (entry.key === key) {//equal
return i;
}
}
return -1;
};
}
如果你不懂Js中對象的創建等一些基礎知識,自己可以網上查一下。
復制代碼 代碼如下:// 自定義Map對象
var map = new Map();
map.put("a","a");
alert(map.get("a"));
map.put("a","b");
alert(map.get("a"));
先彈出 a 後面彈出 b ,因為後面的會覆蓋前面的!
其他方法大家自己寫寫看!
希望本文所述對大家的javascript程序設計有所幫助。