这篇文章的开头,写给我的兄弟: 在程序的世界,只有实践才会得到自己想要的答案。 再高明的计算机,再高明的工具,都无法将空的代码执行成最美的秘密。
上一章简单介绍了JS实现输入时验证(十七),如果没有看过,请观看上一章。
可以看以前写的 JS中的Map形式(十一)
一. Map形式的定义
在JS处理数据的时候,常常要用到类似Java 的Map 形式,早期的时候是没有Map 的,目前版本是有Map 形式的。 Map对象的定义为:
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的元素值VALUE,失败不执行
this.set = function(_key,_value) {
for(i = 0; i < this.elements.length; i++) {
if(this.elements[i].key == _key) {
this.elements[i].value = _value;
return;
}
}
}
//删除指定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) {
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的数组(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的数组(ARRAY)
this.keys = function() {
var arr = new Array();
for(i = 0; i < this.elements.length; i++) {
arr.push(this.elements[i].key);
}
return arr;
}
}
二. Map 的使用
二.一 初始化对象
var subjMap=new Map();
二.二 放置值 put(key,value) 方法
subjMap.put("101","map的形式");
二.三 取出值 get(key)方法
var name=subjMap.get("101");
二.四 判断是否为空 isEmpty() 方法
if(subjMap.isEmpty()){
alert("没有数据");
}else{
alert("有数据");
}
二.五 map的长度 size() 方法
alert("长度是:"+subjMap.size());
二.六 清空数据 clear()
subjMap.clear();
二.七 重新设置值 set(key,value) 方法
subjMap.set("101","重新设置值");
二.八 移除值 remove(key) 方法
subjMap.remove("101");
二.九 根据索引来取出值 element(key)
var obj=subjMap.element("101");
二.十 是否包含containsKey(key) 方法
if(subjMap.containsKey("101")){
alert("包含该key值");
}
二.十一 包含值 containsValue(value) 方法
if(subjMap.containsValue("重新设置值")){
alert("包含该value值");
}
二.十二 遍历所有keys()
var keyArr=subjMap.keys();
二.十三 遍历所有values()
var valueArr=subjMap.values();
三.常用技巧
- 设置值时用 put, 取出时用get
- 清空时,用.clear() 即可
- 判断是否为空时,可以用.size() 长度。
谢谢!!!