最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javascript實現(xiàn)簡單的Map示例介紹

 更新時間:2013年12月23日 15:31:28   作者:  
本文為大家介紹下使用javascript實現(xiàn)簡單的Map,可以對map進(jìn)行獲取、判斷、刪除、增加等等,感興趣的朋友可以了解下
復(fù)制代碼 代碼如下:

/*
* MAP對象,實現(xiàn)MAP功能
*
* 接口:
* size() 獲取MAP元素個數(shù)
* 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的數(shù)組(ARRAY)
* keys() 獲取MAP中所有KEY的數(shù)組(ARRAY)
*
* 例子:
* var map = new Map();
*
* map.put("key", "value");
* var val = map.get("key")
* ……
*
*/
function Map() {
this.elements = new Array();

//獲取MAP元素個數(shù)
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的數(shù)組(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的數(shù)組(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的數(shù)組(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的數(shù)組(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;
};
}

相關(guān)文章

  • Bootstrap每天必學(xué)之下拉菜單

    Bootstrap每天必學(xué)之下拉菜單

    Bootstrap每天必學(xué)之下拉菜單,本文講解的就是大家最為常用的下拉菜單操作,感興趣的小伙伴們可以參考一下
    2015-11-11
  • js加解密 腳本解密

    js加解密 腳本解密

    利用js異或算法實現(xiàn)腳本加解密的代碼
    2008-02-02
  • js實現(xiàn)消息滾動效果

    js實現(xiàn)消息滾動效果

    本文主要分享了js實現(xiàn)消息滾動效果的示例代碼。具有一定的參考價值,下面跟著小編一起來看下吧
    2017-01-01
  • BootStrap組件之進(jìn)度條的基本用法

    BootStrap組件之進(jìn)度條的基本用法

    bootstrap組件在前端開發(fā)中經(jīng)常會用到,今天小編通過本文給大家分享bootstrap組件之進(jìn)度條的基本用法,需要的朋友參考下吧
    2017-01-01
  • 使用CoffeeScrip優(yōu)美方式編寫javascript代碼

    使用CoffeeScrip優(yōu)美方式編寫javascript代碼

    CoffeeScript就是JavaScript,他進(jìn)行的是一對一的編譯,或者說是翻譯,而且編譯成的JavaScript代碼可讀性很強(qiáng)。本文給大家介紹使用CoffeeScript優(yōu)美方式編寫javascript代碼,感興趣的朋友一起看看吧
    2015-10-10
  • JavaScript匿名函數(shù)用法分析

    JavaScript匿名函數(shù)用法分析

    這篇文章主要介紹了JavaScript匿名函數(shù)用法,實例分析了匿名函數(shù)的功能、定義及具體用法,非常具有實用價值,需要的朋友可以參考下
    2015-02-02
  • JavaScript 模塊化語法 import、export示例詳解

    JavaScript 模塊化語法 import、export示例詳解

    ES6 模塊化 (import / export) 是 JavaScript 官方推薦的模塊化方案,解決了 代碼復(fù)用、作用域管理、依賴管理 等問題,本文給大家介紹了JavaScript 模塊化語法 import、export示例代碼,感興趣的朋友一起看看吧
    2025-04-04
  • JavaScript實現(xiàn)自動生成帶水印的圖片

    JavaScript實現(xiàn)自動生成帶水印的圖片

    這篇文章主要來和大家一起討論如何利用JavaScript實現(xiàn)一個復(fù)雜功能,該功能可以自動為圖片添加水印,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-01-01
  • JavaScript/TypeScript 實現(xiàn)并發(fā)請求控制的示例代碼

    JavaScript/TypeScript 實現(xiàn)并發(fā)請求控制的示例代碼

    這篇文章主要介紹了JavaScript/TypeScript 實現(xiàn)并發(fā)請求控制,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • js中小數(shù)向上取整數(shù),向下取整數(shù),四舍五入取整數(shù)的實現(xiàn)(必看篇)

    js中小數(shù)向上取整數(shù),向下取整數(shù),四舍五入取整數(shù)的實現(xiàn)(必看篇)

    下面小編就為大家?guī)硪黄猨s中小數(shù)向上取整數(shù),向下取整數(shù),四舍五入取整數(shù)的實現(xiàn)(必看篇)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02

最新評論

上饶县| 达孜县| 方正县| 拜泉县| 大余县| 南陵县| 顺平县| 基隆市| 普洱| 寿阳县| 杨浦区| 宣武区| 高陵县| 鱼台县| 徐闻县| 顺昌县| 皮山县| 商水县| 大安市| 中山市| 饶河县| 宜城市| 会宁县| 庄浪县| 平阴县| 吉安县| 邢台县| 承德县| 禹城市| 河池市| 韶关市| 楚雄市| 永兴县| 临朐县| 榕江县| 贡嘎县| 盐亭县| 夏河县| 通江县| 上林县| 丹阳市|