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


Posted in Javascript onFebruary 09, 2015

本文实例讲述了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程序设计有所帮助。

Javascript 相关文章推荐
MSN消息提示类
Sep 05 Javascript
js 完美图片新闻轮转效果,腾讯大粤网首页图片轮转改造而来
Nov 21 Javascript
javascript 使td内容不换行不撑开
Nov 29 Javascript
用jQuery实现一些导航条切换,显示隐藏的实例代码
Jun 08 Javascript
JavaScript中的console.group()函数详细介绍
Dec 29 Javascript
基于JavaScript如何实现ajax调用后台定义的方法
Dec 29 Javascript
JS中substring与substr的用法
Nov 16 Javascript
js return返回多个值,通过对象的属性访问方法
Feb 21 Javascript
jQuery实现弹窗下底部页面禁止滑动效果
Dec 19 jQuery
vue路由守卫及路由守卫无限循环问题详析
Sep 05 Javascript
Vue的自定义组件不能使用click方法的解决
Jul 28 Javascript
js实现简单选项卡制作
Aug 05 Javascript
JavaScript设置body高度为浏览器高度的方法
Feb 09 #Javascript
jquery动态改变div宽度和高度
Feb 09 #Javascript
angularJS结合canvas画图例子
Feb 09 #Javascript
jquery实现上下左右滑动的方法
Feb 09 #Javascript
js实现上传图片预览的方法
Feb 09 #Javascript
js实现ifram取父窗口URL地址的方法
Feb 09 #Javascript
jquery实现相册一下滑动两次的方法
Feb 09 #Javascript
You might like
帖几个PHP的无限分类实现想法~
2007/01/02 PHP
PHP使用正则表达式清除超链接文本
2013/11/12 PHP
php获取文件后缀的9种方法
2016/03/22 PHP
PHP实现的分解质因数操作示例
2018/08/01 PHP
php+Ajax处理xml与json格式数据的方法示例
2019/03/04 PHP
微信公众号之主动给用户发送消息功能
2019/06/22 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
2020/03/27 PHP
使用jquery.form.js实现图片上传的方法
2016/05/05 Javascript
使用react-router4.0实现重定向和404功能的方法
2017/08/28 Javascript
Vue Router去掉url中默认的锚点#
2018/08/01 Javascript
vue props 单项数据流实例分享
2020/02/16 Javascript
js利用iframe实现选项卡效果
2020/08/09 Javascript
基于JavaScript实现简单抽奖功能代码实例
2020/10/20 Javascript
[04:52]第二届DOTA2亚洲邀请赛主赛事第一天比赛集锦:OG娜迦海妖放大配合谜团大中3人
2017/04/02 DOTA
浅析Python的web.py框架中url的设定方法
2016/07/11 Python
Python中装饰器高级用法详解
2017/12/25 Python
Python request设置HTTPS代理代码解析
2018/02/12 Python
Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)
2018/12/20 Python
python pandas cumsum求累计次数的用法
2019/07/29 Python
python实现屏保程序(适用于背单词)
2019/07/30 Python
使用Python paramiko模块利用多线程实现ssh并发执行操作
2019/12/05 Python
使用wxpy实现自动发送微信消息功能
2020/02/28 Python
Django admin管理工具TabularInline类用法详解
2020/05/14 Python
Python函数的迭代器与生成器的示例代码
2020/06/18 Python
Python制作一个仿QQ办公版的图形登录界面
2020/09/22 Python
PatPat阿根廷:妈妈们的购物平台
2019/05/30 全球购物
可爱的童装和鞋子:Fabkids
2019/08/16 全球购物
大学新生军训方案
2014/05/03 职场文书
企业活动策划方案
2014/06/02 职场文书
商业企业管理专业求职信
2014/07/10 职场文书
2014优秀党员事迹材料
2014/08/14 职场文书
个人纪律作风整改措施思想汇报
2014/10/12 职场文书
党建工作整改措施
2014/10/28 职场文书
2014年全国法制宣传日宣传活动方案
2014/11/02 职场文书
党员检讨书范文
2014/12/27 职场文书
给老婆的检讨书(搞笑版)
2015/05/06 职场文书