js中Map数据结构的妙用记录

1.用Map实现数组去重

function arrayNonRepeatfy(arr) {
  let map = new Map();
  let array = new Array();  // 数组用于返回结果
  for (let i = 0; i < arr.length; i++) {
    if(map .has(arr[i])) {  // 如果有该key值
      map .set(arr[i], true); 
    } else { 
      map .set(arr[i], false);   // 如果没有该key值
      array .push(arr[i]);
    }
  } 
  return array ;
}
 var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}];
    console.log(unique(arr))
//[1, "a", "true", true, 15, false, 1, {…}, null, NaN, NaN, "NaN", 0, "a", {…}, undefined]
原理:创建一个空 Map 数据结构,遍历需要去重的数组,把数组的每一个元素作为 key 存到 Map 中。由于 Map 中不会出现相同的 key 值,所以最终得到的就是去重后的结果。

2.用Map的映射作用实现链接替换
对于toC的项目,对应C端项目会有app端和小程序端,这两种跳转至同一个页面的链接是不同的,后端管理系统是共用的,直接输入链接会造成有一端不适配的问题。这时候运用Map的映射作用就能很好的实现,比如后端管理系统跳转的是app的链接,小程序上可以这样处理。

//新建一个Map数据结构
let linkMap =  new Map([
    [APP链接1, 小程序链接1], 
    [APP链接2, 小程序链接2],
    [APP链接3, 小程序链接3]
])

//跳转链接
wx.navigateTo({
    url: linkMap.get(APP链接1)
})
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容