麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JavaScript > 正文

javascript實現簡單的Map示例介紹

2019-11-20 21:24:21
字體:
來源:轉載
供稿:網友
復制代碼 代碼如下:

/*
* MAP對象,實現MAP功能
*
* 接口:
* size() 獲取MAP元素個數
* isEmpty() 判斷MAP是否為空
* clear() 刪除MAP所有元素
* put(key, value) 向MAP中增加元素(key, value)
* remove(key) 刪除指定KEY的元素,成功返回True,失敗返回False
* get(key) 獲取指定KEY的元素值VALUE,失敗返回NULL
* element(index) 獲取指定索引的元素(使用element.key,element.value獲取KEY和VALUE),失敗返回NULL
* containsKey(key) 判斷MAP中是否含有指定KEY的元素
* containsValue(value) 判斷MAP中是否含有指定VALUE的元素
* values() 獲取MAP中所有VALUE的數組(ARRAY)
* keys() 獲取MAP中所有KEY的數組(ARRAY)
*
* 例子:
* var map = new Map();
*
* map.put("key", "value");
* var val = map.get("key")
* ……
*
*/
function Map() {
this.elements = new Array();

//獲取MAP元素個數
this.size = function() {
return this.elements.length;
};

//判斷MAP是否為空
this.isEmpty = function() {
return (this.elements.length < 1);
};

//刪除MAP所有元素
this.clear = function() {
this.elements = new Array();
};

//向MAP中增加元素(key, value)
this.put = function(_key, _value) {
this.elements.push( {
key : _key,
value : _value
});
};

//刪除指定KEY的元素,成功返回True,失敗返回False
this.removeByKey = function(_key) {
var bln = false;
try {
for (i = 0; i < this.elements.length; i++) {
if (this.elements[i].key == _key) {
this.elements.splice(i, 1);
return true;
}
}
} catch (e) {
bln = false;
}
return bln;
};

//刪除指定VALUE的元素,成功返回True,失敗返回False
this.removeByValue = function(_value) {//removeByValueAndKey
var bln = false;
try {
for (i = 0; i < this.elements.length; i++) {
if (this.elements[i].value == _value) {
this.elements.splice(i, 1);
return true;
}
}
} catch (e) {
bln = false;
}
return bln;
};

//刪除指定VALUE的元素,成功返回True,失敗返回False
this.removeByValueAndKey = function(_key,_value) {
var bln = false;
try {
for (i = 0; i < this.elements.length; i++) {
if (this.elements[i].value == _value && this.elements[i].key == _key) {
this.elements.splice(i, 1);
return true;
}
}
} catch (e) {
bln = false;
}
return bln;
};

//獲取指定KEY的元素值VALUE,失敗返回NULL
this.get = function(_key) {
try {
for (i = 0; i < this.elements.length; i++) {
if (this.elements[i].key == _key) {
return this.elements[i].value;
}
}
} catch (e) {
return false;
}
return false;
};

//獲取指定索引的元素(使用element.key,element.value獲取KEY和VALUE),失敗返回NULL
this.element = function(_index) {
if (_index < 0 || _index >= this.elements.length) {
return null;
}
return this.elements[_index];
};

//判斷MAP中是否含有指定KEY的元素
this.containsKey = function(_key) {
var bln = false;
try {
for (i = 0; i < this.elements.length; i++) {
if (this.elements[i].key == _key) {
bln = true;
}
}
} catch (e) {
bln = false;
}
return bln;
};

//判斷MAP中是否含有指定VALUE的元素
this.containsValue = function(_value) {
var bln = false;
try {
for (i = 0; i < this.elements.length; i++) {
if (this.elements[i].value == _value) {
bln = true;
}
}
} catch (e) {
bln = false;
}
return bln;
};

//判斷MAP中是否含有指定VALUE的元素
this.containsObj = function(_key,_value) {
var bln = false;
try {
for (i = 0; i < this.elements.length; i++) {
if (this.elements[i].value == _value && this.elements[i].key == _key) {
bln = true;
}
}
} catch (e) {
bln = false;
}
return bln;
};

//獲取MAP中所有VALUE的數組(ARRAY)
this.values = function() {
var arr = new Array();
for (i = 0; i < this.elements.length; i++) {
arr.push(this.elements[i].value);
}
return arr;
};

//獲取MAP中所有VALUE的數組(ARRAY)
this.valuesByKey = function(_key) {
var arr = new Array();
for (i = 0; i < this.elements.length; i++) {
if (this.elements[i].key == _key) {
arr.push(this.elements[i].value);
}
}
return arr;
};

//獲取MAP中所有KEY的數組(ARRAY)
this.keys = function() {
var arr = new Array();
for (i = 0; i < this.elements.length; i++) {
arr.push(this.elements[i].key);
}
return arr;
};

//獲取key通過value
this.keysByValue = function(_value) {
var arr = new Array();
for (i = 0; i < this.elements.length; i++) {
if(_value == this.elements[i].value){
arr.push(this.elements[i].key);
}
}
return arr;
};

//獲取MAP中所有KEY的數組(ARRAY)
this.keysRemoveDuplicate = function() {
var arr = new Array();
for (i = 0; i < this.elements.length; i++) {
var flag = true;
for(var j=0;j<arr.length;j++){
if(arr[j] == this.elements[i].key){
flag = false;
break;
}
}
if(flag){
arr.push(this.elements[i].key);
}
}
return arr;
};
}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 一级免费大片 | xnxx18日本| 永久av在线免费观看 | 思思久而久而蕉人 | 毛片免费一区二区三区 | 欧美 中文字幕 | 欧美2区| 九九热精品视频在线播放 | 国产精品一区二区三区99 | 亚洲天堂成人在线观看 | 激情久久精品 | 羞羞的网址 | 久久成人激情视频 | 国产成人自拍视频在线 | 欧美黄一级 | 欧洲伊人网 | 海角在线观看91一区二区 | 在线高清中文字幕 | xp123精品视频 | 午夜天堂在线 | 91成人免费视频 | 国产免费久久久 | 99精品视频在线免费观看 | 一区二区免费网站 | 日韩在线播放一区二区 | 国产精品视频中文字幕 | 天堂在线中文资源 | 911网站大全在线观看 | 九九视频精品在线 | 精品黑人一区二区三区国语馆 | 久久精品2019中文字幕 | 国产精品99精品 | 369看片你懂的小视频在线观看 | 91精品国产综合久久久动漫日韩 | 一级毛片免费一级 | 欧美成人精品欧美一级乱黄 | av电影在线免费观看 | 久久不雅视频 | 欧美人与牲禽动交精品一区 | 成人 在线 | 国产精品7区 |