JS中的Map形式(十一)

简介: JS中的Map形式(十一)

一. JS中的Map形式


在js里面,有的时候,常常需要类似于Map的形式,进行键值对的处理,如写字典时,编号与名称进行对应, 编号与当前的对象进行对应。


二. JS代码


/**生成键值对集合*/
var initMap=function(){
    var obj = {
        Set : function(key,value){this[key] = value},
        Get : function(key){return this[key]},
        Contains : function(key){return this.Get(key) == null?false:true},
        Remove : function(key){delete this[key]}
    };
    return obj;
}


有map 中常用的方法, Set 放置值, Get 获取值, Contains 是否包含key 值, Remove 根据key 来移除值。


三.initMap 的使用


三.一 初始化


var userMap=initMap();  //不需要new。


三.二 放置值


userMap.Set("101","张三");


三.三 获取值


var name=userMap.Get("101");  //张三


三.四 是否包含值


if(userMap.Contains("101")){
  console.log("包含101的值");
}else{
  console.log("不包含101的值");
}


三.五 设置对象值


initMap 中的value,不仅可以是普通的值,也可以是对象的值。


// userList 为json对象。
$.each(userList,function(idx,item){
  userMap.Set(item.user_code,item);
})


将 编号 和那个编号所对应的对象放置到了map 里面。

获取值时可以这样:


if(userMap.Contains("101")){
  console.log("名称是:"+userMap.Get("101").user_name);
}


三.六 放置对象数组


不仅可以放置单个对象,也可以放置对象数组,如员工和部门时,一个员工可以有多个部门的情况。


//重置一下
userMap=initMap();
$.each(deptList,function(idx,item){
  if(userMap.Contains(item.user_code){
      userMap.Get(item.user_code).push(item);
  })else{
      var arr=new Array();
      arr.push(item);
      userMap.Set(item.user_code,arr);
  }
})


当取出值时,取出来的是数组,按照数组进行解析数据。


谢谢!!!

相关文章
|
1月前
|
存储 JavaScript 索引
js开发:请解释什么是ES6的Map和Set,以及它们与普通对象和数组的区别。
ES6引入了Map和Set数据结构。Map的键可以是任意类型且有序,与对象的字符串或符号键不同;Set存储唯一值,无重复。两者皆可迭代,支持for...of循环。Map有get、set、has、delete等方法,Set有add、delete、has方法。示例展示了Map和Set的基本操作。
36 3
|
6天前
|
存储 JavaScript 前端开发
JavaScript进阶-Map与Set集合
【6月更文挑战第20天】JavaScript的ES6引入了`Map`和`Set`,它们是高效处理集合数据的工具。`Map`允许任何类型的键,提供唯一键值对;`Set`存储唯一值。使用`Map`时,注意键可以非字符串,用`has`检查键存在。`Set`常用于数组去重,如`[...new Set(array)]`。了解它们的高级应用,如结构转换和高效查询,能提升代码质量。别忘了`WeakMap`用于弱引用键,防止内存泄漏。实践使用以加深理解。
|
9天前
|
JavaScript 前端开发
JavaScript 数组的函数 map/forEach/reduce/filter
JavaScript 数组的函数 map/forEach/reduce/filter
|
1月前
|
JavaScript 前端开发
JavaScript 的数组方法 map()、filter() 和 reduce() 提供了函数式编程处理元素的方式
【5月更文挑战第11天】JavaScript 的数组方法 map()、filter() 和 reduce() 提供了函数式编程处理元素的方式。map() 用于创建新数组,其中元素是原数组元素经过指定函数转换后的结果;filter() 则筛选出通过特定条件的元素生成新数组;reduce() 将数组元素累计为单一值。这三个方法使代码更简洁易读,例如:map() 可用于数组元素乘以 2,filter() 用于选取偶数,reduce() 计算数组元素之和。
20 2
|
1月前
|
前端开发 JavaScript 程序员
Javascript:forEach、map、filter、reduce、reduceRight
Javascript:forEach、map、filter、reduce、reduceRight
|
1月前
|
存储 缓存 JavaScript
JavaScript中的Set和Map:理解与使用
JavaScript中的Set和Map:理解与使用
|
1月前
|
JavaScript 前端开发
JavaScript中的map和foreach:理解与使用
JavaScript中的map和foreach:理解与使用
|
1月前
|
存储 JavaScript 前端开发
JavaScript高级主题:JavaScript 中的 Map 和 Set 是什么?它们有什么区别?
JavaScript的ES6引入了Map和Set数据结构。Map用于存储键值对,适合通过键进行查找,而Set则存储唯一值,无键且不支持键查找。两者在性能上表现出色,尤其在频繁的写入删除操作中。选择使用哪个取决于具体应用场景:键值对需求选Map,独特值集合则选Set。
26 2
|
1月前
|
JavaScript 安全 前端开发
js的map函数
js的map函数
11 0
|
1月前
|
JavaScript
js Array map映射对象多个属性
js Array map映射对象多个属性
14 0