文章标题

来源:互联网 发布:php在线客服 编辑:程序博客网 时间:2024/06/07 00:37
 首先,定义一个json对象数组,这个一般是通过请求从后台取得:  varlist = [{id: 11, name: qi11 },{id: 22, name: qi22 },{id: 33,name: qi33 },{id: 55, name: qi55 }, {id: 44, name: qi44 }];​  接下来,再来看看两种实现方式,个人觉得第一中用起来比较简单  (一)方式一:重新用一个属性作为数组的下标,即键 开始,定义一个存放map的集合:  var mapList = [];

​ 然后,再来遍历,

​for(var o in list) {

mapList[list.id] =list;

}

  这里,使用id或者name,其实都可以的,然后通过mapList​直接就可以获得对于键的值了。 (二)方式二:​定义一个map函数,即类,封装类似java中map接口对应于map的相关操作function Map() {this.elements = newArray();

//获取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.remove =function(_key) {   var bln = false;   try {       for (i =0; i < this.elements.length; i++) {          if (this.elements.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.key ==_key) {             return this.elements.value;          }      }   } catch (e) {       returnnull;   }};

//获取指定索引的元素(使用element.key,element.value获取KEY和VALUE),失败返回NULL

this.element =function(_index) {   if (_index < 0 || _index >=this.elements.length) {       returnnull;   }   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.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.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.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.key);   }   return arr;};

}

 ​然后,创建一个map对象,

​var mapList = new Map();

​ 接下来,进行遍历想map中添加键值,

​for(var o in list) {

mapList.put(list.id,list);

}

 最后,就可以通过get方法获取对应键的值了。

另搜索到此种方法,暂未试验
//实现键值对
function Dictionary() {
this.data = new Array();

this.put = function(key, value) {    this.data[key] = value;};this.get = function(key) {    return this.data[key];};this.remove = function(key) {    this.data[key] = null;};this.isEmpty = function() {    return this.data.length == 0;};this.size = function() {    return this.data.length;};

}

//
//function test(){
// var d = new Dictionary();
// d.put(“china”,”中国”);
// var a = d.get(“china”);
// document.write(a);
//}
//test();

0 0
原创粉丝点击