javascript模拟map输出与去除重复项的方法

 更新时间:2015年02月09日 16:33:18   作者:另一花生  
这篇文章主要介绍了javascript模拟map输出与去除重复项的方法,通过自定义函数结合遍历与删除的方法实现了去除重复项的功能,非常具有实用价值,需要的朋友可以参考下

本文实例讲述了javascript模拟map输出与去除重复项的方法。分享给大家供大家参考。具体方法如下:

1.Javascriptmap输出

function Map(){ 
// private  
var obj = {} ;// 空的对象容器,承装键值对 
// put 方法 
this.put = function(key , value){ 
 obj[key] = value ;// 把键值对绑定到obj对象上
} 
// size 方法 获得map容器的个数 
this.size = function(){ 
 var count = 0 ;  
 for(var attr in obj){ 
   count++; 
 } 
 return count ;  
} 
// get 方法 根据key 取得value 
this.get = function(key){ 
  if(obj[key] || obj[key] === 0 || obj[key] === false){ 
 return obj[key]; 
  } else { 
 return null; 
  } 
} 
//remove 删除方法 
this.remove = function(key){ 
  if(obj[key] || obj[key] === 0 || obj[key] === false){ 
 delete obj[key];             
  } 
} 
// eachMap 变量map容器的方法 
this.eachMap = function(fn){ 
 for(var attr in obj){ 
   fn(attr, obj[attr]); 
 } 
} 
} 
//模拟java里的Map 
var m = new Map(); 
m.put('01' , 'abc'); 
m.put('02' , false) ; 
m.put('03' , true); 
m.put('04' , new Date()); 

//alert(m.size()); 

//alert(m.get('02')); 
//m.remove('03'); 
//alert(m.get('03')); 

m.eachMap(function(key , value){ 
     alert(key +" :"+ value); 
});

2.去除map中重复项

var arr = [2,1,2,10,2,3,5,5,1,10,13];//object 
//js对象的特性:在js对象中key是永远不会重复的  
/* 
var obj = new Object(); 
obj.name = 'z3'; 
obj.age = 20 ; 
//alert(obj.name); 
obj.name = 'w5'; 
alert(obj.name); 
*/ 
 
// 1 把数组转成一个js的对象 
// 2 把数组中的值,变成js对象当中的key 
// 3 把这个对象 再还原成数组 
 
// 把数组转成对象 
function toObject(arr){ 
 var obj = {} ; // 私有的对象 
 var j ; 
 for(var i=0 , j= arr.length ; i<j; i++){ 
 obj[arr[i]] = true ; 
 } 
 return obj ; 
} 
 
// 把这个对象转成数组 
function keys(obj){ 
 var arr = [] ; // 私有对象 
 for(var attr in obj){ 
   if(obj.hasOwnProperty(attr)){//YUI底层代码 
 arr.push(attr); 
   } 
 } 
 return arr ; 
} 

//综合的方法 去掉数组中的重复项 
function uniq(newarr){ 
 return keys(toObject(newarr)); 
} 
alert(uniq(arr));

希望本文所述对大家的javascript程序设计有所帮助。

相关文章

  • 初步使用bootstrap快速创建页面

    初步使用bootstrap快速创建页面

    初步尝试使用Express搭建了一个Web框架,那么接下来就是要在该框架下写上自己的页面,快速创建页面这里选择了bootstrap前端框架,通过它即使你不太懂前端设计,写出来的页面也不会太难看,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • JavaScript知识点总结(十)之this关键字

    JavaScript知识点总结(十)之this关键字

    这篇文章主要介绍了JavaScript知识点总结(十)之this关键字的相关资料,非常不错具有参考借鉴价值,需要的朋友可以参考下
    2016-05-05
  • Js判断参数(String,Array,Object)是否为undefined或者值为空

    Js判断参数(String,Array,Object)是否为undefined或者值为空

    在一些前端控件要提交数据到服务器端的数据验证过程中,需要判断提交的数据是否为空。如果是普通表单的字符串数据,只需要在 trim 后判断 length 即可,而这里需要的数据可以是各种不同的类型,通过 JSON.stringify(data) 进行序列化后再传递
    2013-11-11
  • 让JavaScript 轻松支持函数重载 (Part 1 - 设计)

    让JavaScript 轻松支持函数重载 (Part 1 - 设计)

    JavaScript支持函数重载吗?可以说不支持,也可以说支持。说不支持,是因为JavaScript不能好像其它原生支持函数重载的语言一样,直接写多个同名函数,让编译器来判断某个调用对应的是哪一个重载。
    2009-08-08
  • 用javascript实现gb2312转utf-8的脚本

    用javascript实现gb2312转utf-8的脚本

    用javascript实现gb2312转utf-8的脚本...
    2007-05-05
  • Javascript将string类型转换int类型

    Javascript将string类型转换int类型

    今天网站有个小功能要判断用户购买商品数量是否大于库存数据,如果大于库存数量,就给予提示。
    2010-12-12
  • layui 地区三级联动 form select 渲染的实例

    layui 地区三级联动 form select 渲染的实例

    今天小编就为大家分享一篇layui 地区三级联动 form select 渲染的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09
  • JS画5角星方法介绍

    JS画5角星方法介绍

    5角星想必大家并不陌生吧,在本文大家将会学习到使用JS画5角星,感兴趣的朋友可以参考下,希望对大家有所帮助
    2013-09-09
  • JS动态修改网页body的背景色实例代码

    JS动态修改网页body的背景色实例代码

    这篇文章主要介绍了JS动态修改网页body的背景色实例代码 ,需要的朋友可以参考下
    2017-10-10
  • 使用clipboard.js库实现复制剪切功能

    使用clipboard.js库实现复制剪切功能

    这篇文章介绍了clipboard.js实现复制功能的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06

最新评论