JS Map 和 List 的簡(jiǎn)單實(shí)現(xiàn)代碼
/*
* MAP對(duì)象,實(shí)現(xiàn)MAP功能
*
* 接口:
* size() 獲取MAP元素個(gè)數(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元素個(gè)數(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.remove = 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;
};
//獲取指定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 null;
}
};
//獲取指定索引的元素(使用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的數(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中所有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;
};
}
/**
* js實(shí)現(xiàn)list
*
*/
function List() {
this.value = [];
/* 添加 */
this.add = function(obj) {
return this.value.push(obj);
};
/* 大小 */
this.size = function() {
return this.value.length;
};
/* 返回指定索引的值 */
this.get = function(index) {
return this.value[index];
};
/* 刪除指定索引的值 */
this.remove = function(index) {
this.value.splice(index,1);
return this.value;
};
/* 刪除全部值 */
this.removeAll = function() {
return this.value = [];
};
/* 是否包含某個(gè)對(duì)象 */
this.constains = function(obj) {
for ( var i in this.value) {
if (obj == this.value[i]) {
return true;
} else {
continue;
}
}
return false;
};
/* 是否包含某個(gè)對(duì)象 */
this.getAll = function() {
var allInfos = '';
for ( var i in this.value) {
if(i != (value.length-1)){
allInfos += this.value[i]+",";
}else{
allInfos += this.value[i];
}
}
alert(allInfos);
return allInfos += this.value[i]+",";;
};
}
- js Map List 遍歷使用示例
- js實(shí)現(xiàn)的map方法示例代碼
- js中遍歷Map對(duì)象的方法
- js中生成map對(duì)象的方法
- 詳談js遍歷集合(Array,Map,Set)
- javascript實(shí)現(xiàn)簡(jiǎn)單的Map示例介紹
- JS中創(chuàng)建自定義類(lèi)型的常用模式總結(jié)【工廠模式,構(gòu)造函數(shù)模式,原型模式,動(dòng)態(tài)原型模式等】
- javaScript中定義類(lèi)或?qū)ο蟮奈宸N方式總結(jié)
- JS類(lèi)的定義與使用方法深入探索
- JavaScript JMap類(lèi)定義與使用方法示例
相關(guān)文章
點(diǎn)擊單元格后可編輯單元格內(nèi)文本如何制作
點(diǎn)擊單元格后可編輯單元格內(nèi)文本如何制作...2006-10-10JavaScript 抽獎(jiǎng)效果實(shí)現(xiàn)代碼 數(shù)字跳動(dòng)版
直接上代碼吧,效果可以復(fù)制了去看2009-11-11詳解js對(duì)象中屬性的兩種類(lèi)型之?dāng)?shù)據(jù)屬性和訪問(wèn)器屬性
在理解vue底層響應(yīng)式原理時(shí),了解到,原來(lái)對(duì)象中的屬性,不單單從表面看起來(lái)那么簡(jiǎn)單是key:value形式,而是還有隱藏的內(nèi)部特性,其中對(duì)象內(nèi)的屬性分為兩種類(lèi)型的屬性:數(shù)據(jù)屬性和訪問(wèn)器屬性,本文將給大家詳細(xì)介紹一下數(shù)據(jù)屬性和訪問(wèn)器屬性,需要的朋友可以參考下2023-05-05uniapp多選框全選功能的實(shí)現(xiàn)思路與方法實(shí)例
uniapp給我們提供了tabs組件進(jìn)行單項(xiàng)的切換,但是多選的效果需要我們自己去手寫(xiě),下面這篇文章主要給大家介紹了關(guān)于uniapp多選框全選功能實(shí)現(xiàn)思路與方法的相關(guān)資料,需要的朋友可以參考下2022-08-08JavaScript高級(jí)程序設(shè)計(jì) 閱讀筆記(二十) js錯(cuò)誤處理
語(yǔ)法錯(cuò)誤,也稱(chēng)解析錯(cuò)誤,發(fā)生在傳統(tǒng)語(yǔ)言的編譯時(shí),在JavaScript中發(fā)生在解釋時(shí),運(yùn)行時(shí)錯(cuò)誤也稱(chēng)為異常(exception,在編譯期/解釋器后)2012-08-08基于JavaScript實(shí)現(xiàn)的快速排序算法分析
這篇文章主要介紹了基于JavaScript實(shí)現(xiàn)的快速排序算法,分析了快速排序的原理并結(jié)合實(shí)例形式給出了javascript快速排序的操作步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-04-04javascript如何操作HTML下拉列表標(biāo)簽
下拉列表在網(wǎng)站前端開(kāi)發(fā)中經(jīng)常遇到,如何操作html下拉列表標(biāo)簽,本篇文章給大家詳解javascript如何操作html下拉列表標(biāo)簽,需要的朋友可以來(lái)參考下2015-08-08JavaScript中檢測(cè)數(shù)據(jù)類(lèi)型的四種方法
這篇文章主要給大家分享的是JavaScript中檢測(cè)數(shù)據(jù)類(lèi)型的四種方法,有 typeof、instanceof、constructor、Object.prototype.toString.call(),下面文章詳細(xì)介紹內(nèi)容,需要的小伙伴可以參考一下2022-01-01