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 相关文章推荐
javascript 闭包
Sep 15 Javascript
javascript 事件处理程序介绍
Jun 27 Javascript
JavaScript中的console.trace()函数介绍
Dec 29 Javascript
Bootstrap每天必学之工具提示(Tooltip)插件
Apr 26 Javascript
jQuery使用animate实现ul列表项相互飘动效果示例
Sep 16 Javascript
WebPack基础知识详解
Jan 16 Javascript
JS实现线性表的顺序表示方法示例【经典数据结构】
Apr 11 Javascript
jQuery实现打开网页自动弹出遮罩层或点击弹出遮罩层功能示例
Oct 19 jQuery
angular实现input输入监听的示例
Aug 31 Javascript
Vue.set()动态的新增与修改数据,触发视图更新的方法
Sep 15 Javascript
vue vant Area组件使用详解
Dec 09 Javascript
Vue实现简单的跑马灯
May 25 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的autoload自动加载机制使用说明
2010/12/28 PHP
显示程序执行时间php函数代码
2013/08/29 PHP
php提示Failed to write session data错误的解决方法
2014/12/17 PHP
JavaScript定义类或函数的几种方式小结
2011/01/09 Javascript
JS如何判断移动端访问设备并解析对应CSS
2013/11/27 Javascript
xmlhttp缓存清除的2种解决方法
2013/12/13 Javascript
css结合js制作下拉菜单示例代码
2014/02/27 Javascript
JS实现超过长度限制后自动跳转下一款文本框的方法
2015/02/23 Javascript
js文字横向滚动特效
2015/11/11 Javascript
Nodejs中session的简单使用及通过session实现身份验证的方法
2016/02/04 NodeJs
JavaScript实现设计模式中的单例模式的一些技巧总结
2016/05/17 Javascript
AngularJS控制器之间的通信方式详解
2016/11/03 Javascript
js通过keyCode值判断单击键盘上某个键,然后触发指定的事件方法
2017/02/19 Javascript
JavaScript数据结构之二叉树的查找算法示例
2017/04/13 Javascript
详解vue项目优化之按需加载组件-使用webpack require.ensure
2017/06/13 Javascript
javascript canvas封装动态时钟
2020/09/30 Javascript
深入理解Python单元测试unittest的使用示例
2017/11/18 Python
Python浅复制中对象生存周期实例分析
2018/04/02 Python
python基础学习之如何对元组各个元素进行命名详解
2018/07/12 Python
python去掉 unicode 字符串前面的u方法
2018/10/21 Python
pycharm永久激活超详细教程
2020/10/29 Python
Canvas实现贝赛尔曲线轨迹动画的示例代码
2019/04/25 HTML / CSS
美国最大的骑马用品零售商:HorseLoverZ
2017/01/12 全球购物
美国著名手表网站:Timepiece
2017/11/15 全球购物
幼儿园小班家长寄语
2014/04/02 职场文书
2014教师党员自我评议(5篇)
2014/09/20 职场文书
2014年会计人员工作总结
2014/12/10 职场文书
关于童年的读书笔记
2015/06/26 职场文书
2015年秋季运动会加油稿
2015/07/22 职场文书
2016大学军训心得体会
2016/01/11 职场文书
军训心得体会范文(2016最新篇)
2016/01/11 职场文书
火锅店的开业营销方案范本!
2019/07/05 职场文书
2019朋友新婚祝福语精选
2019/10/10 职场文书
python基于tkinter制作无损音乐下载工具
2021/03/29 Python
Python中的xlrd模块使用整理
2021/06/15 Python
深入理解go slice结构
2021/09/15 Golang