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 相关文章推荐
js当一个变量为函数时 应该注意的一点细节小结
Dec 29 Javascript
浅谈Javascript鼠标和滚轮事件
Jun 27 Javascript
jQuery实现冻结表格行和列
Apr 29 Javascript
javascript实现验证IP地址等相关信息代码
May 10 Javascript
Jquery实现上下移动和排序代码
Oct 17 Javascript
leaflet的开发入门教程
Nov 17 Javascript
JavaScript设计模式之构造函数模式实例教程
Jul 02 Javascript
JavaScript实现创建自定义对象的常用方式总结
Jul 09 Javascript
vue实现的请求服务器端API接口示例
May 25 Javascript
手写Vue弹窗Modal的实现代码
Sep 11 Javascript
JavaScript常用进制转换及位运算实例解析
Oct 14 Javascript
vue 避免变量赋值后双向绑定的操作
Nov 07 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调用Linux的命令行执行文件压缩命令
2013/01/27 PHP
php生成图片验证码
2015/06/09 PHP
PHP下载大文件失败并限制下载速度的实例代码
2019/05/10 PHP
基于PHP实现邮箱验证激活过程详解
2020/10/28 PHP
js闭包所用的场合以及优缺点分析
2015/06/22 Javascript
Backbone中View之间传值的学习心得
2016/08/09 Javascript
JS基于HTML5的canvas标签实现炫目的色相球动画效果实例
2016/08/24 Javascript
基于JS实现类似支付宝支付密码输入框
2016/09/02 Javascript
js判断文件格式及大小的简单实例(必看)
2016/10/11 Javascript
JavaScript浮点数及运算精度调整详解
2016/10/21 Javascript
JavaScript 数组的深度复制解析
2016/11/02 Javascript
浅谈MVC+EF easyui dataGrid 动态加载分页表格
2016/11/10 Javascript
Vue.js实现的计算器功能完整示例
2018/07/11 Javascript
JavaScript中判断为整数的多种方式及保留两位小数的方法
2019/09/09 Javascript
vue.js实现简单购物车功能
2020/05/30 Javascript
Python中的复制操作及copy模块中的浅拷贝与深拷贝方法
2016/07/02 Python
详解Python多线程Selenium跨浏览器测试
2017/04/01 Python
Python 操作文件的基本方法总结
2017/08/10 Python
如何优雅地改进Django中的模板碎片缓存详解
2018/07/04 Python
对python pandas读取剪贴板内容的方法详解
2019/01/24 Python
11个Python Pandas小技巧让你的工作更高效(附代码实例)
2019/04/30 Python
python实现简单井字棋小游戏
2020/03/05 Python
Django实现将一个字典传到前端显示出来
2020/04/03 Python
NBA德国官方网上商店:NBA Store德国
2018/04/13 全球购物
Foot Locker德国官方网站:美国运动服和鞋类零售商
2018/11/01 全球购物
Jowissa官方网站:瑞士制造的手表,优雅简约的设计
2020/07/29 全球购物
程序员机试试题汇总
2012/03/07 面试题
投标授权委托书范文
2014/08/02 职场文书
学雷锋志愿者活动方案
2014/08/21 职场文书
八一建军节演讲稿
2014/09/10 职场文书
幼儿园教师工作总结2015
2015/04/02 职场文书
妈妈别哭观后感
2015/06/08 职场文书
五年级作文之成长
2019/09/16 职场文书
详解redis分布式锁的这些坑
2021/05/19 Redis
Mysql关于数据库是否应该使用外键约束详解说明
2021/10/24 MySQL
Android中View.post和Handler.post的关系
2022/06/05 Java/Android