javascript

位置:IT落伍者 >> javascript >> 浏览文章

JS Map 和 List 的简单实现代码


发布日期:2021年12月29日
 
JS Map 和 List 的简单实现代码
本篇文章是对在JS中Map和List的简单实现代码进行了详细的分析介绍需要的朋友参考下复制代码 代码如下:
/*
* 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) 获取指定索引的元素(使用elementkeyelementvalue获取KEY和VALUE)失败返回NULL
* containsKey(key) 判断MAP中是否含有指定KEY的元素
* containsValue(value) 判断MAP中是否含有指定VALUE的元素
* values() 获取MAP中所有VALUE的数组(ARRAY)
* keys() 获取MAP中所有KEY的数组(ARRAY)
*
* 例子
* var map = new Map();
*
* mapput("key" "value");
* var val = mapget("key")
* ……
*
*/
function Map() {
thiselements = new Array();
//获取MAP元素个数
thissize = function() {
return thiselementslength;
};
//判断MAP是否为空
thisisEmpty = function() {
return (thiselementslength < );
};
//删除MAP所有元素
thisclear = function() {
thiselements = new Array();
};
//向MAP中增加元素(key value)
thisput = function(_key _value) {
thiselementspush( {
key : _key
value : _value
});
};
//删除指定KEY的元素成功返回True失败返回False
thisremove = function(_key) {
var bln = false;
try {
for (i = ; i < thiselementslength; i++) {
if (thiselements[i]key == _key) {
thiselementssplice(i );
return true;
}
}
} catch (e) {
bln = false;
}
return bln;
};
//获取指定KEY的元素值VALUE失败返回NULL
thisget = function(_key) {
try {
for (i = ; i < thiselementslength; i++) {
if (thiselements[i]key == _key) {
return thiselements[i]value;
}
}
} catch (e) {
return null;
}
};
//获取指定索引的元素(使用elementkeyelementvalue获取KEY和VALUE)失败返回NULL
thiselement = function(_index) {
if (_index < || _index >= thiselementslength) {
return null;
}
return thiselements[_index];
};
//判断MAP中是否含有指定KEY的元素
thiscontainsKey = function(_key) {
var bln = false;
try {
for (i = ; i < thiselementslength; i++) {
if (thiselements[i]key == _key) {
bln = true;
}
}
} catch (e) {
bln = false;
}
return bln;
};
//判断MAP中是否含有指定VALUE的元素
thiscontainsValue = function(_value) {
var bln = false;
try {
for (i = ; i < thiselementslength; i++) {
if (thiselements[i]value == _value) {
bln = true;
}
}
} catch (e) {
bln = false;
}
return bln;
};
//获取MAP中所有VALUE的数组(ARRAY)
thisvalues = function() {
var arr = new Array();
for (i = ; i < thiselementslength; i++) {
arrpush(thiselements[i]value);
}
return arr;
};
//获取MAP中所有KEY的数组(ARRAY)
thiskeys = function() {
var arr = new Array();
for (i = ; i < thiselementslength; i++) {
arrpush(thiselements[i]key);
}
return arr;
};
}复制代码 代码如下:
/**
* js实现list
*
*/
function List() {
thisvalue = [];
/* 添加 */
thisadd = function(obj) {
return thisvaluepush(obj);
};
/* 大小 */
thissize = function() {
return thisvaluelength;
};
/* 返回指定索引的值 */
thisget = function(index) {
return thisvalue[index];
};
/* 删除指定索引的值 */
thisremove = function(index) {
thisvaluesplice(index);
return thisvalue;
};
/* 删除全部值 */
thisremoveAll = function() {
return thisvalue = [];
};
/* 是否包含某个对象 */
thisconstains = function(obj) {
for ( var i in thisvalue) {
if (obj == thisvalue[i]) {
return true;
} else {
continue;
}
}
return false;
};

/* 是否包含某个对象 */
thisgetAll = function() {
var allInfos = ;
for ( var i in thisvalue) {
if(i != (valuelength)){
allInfos += thisvalue[i]+"";
}else{
allInfos += thisvalue[i];
}
}
alert(allInfos);
return allInfos += thisvalue[i]+"";;
};

}               

上一篇:JS的千分位算法实现思路

下一篇:jquery控制左右箭头滚动图片列表的实例