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 CSS操作方法集合
Oct 31 Javascript
jquery.simple.tree插件 更简单,兼容性更好的无限树插件
Sep 03 Javascript
window.dialogArguments 使用说明
Apr 11 Javascript
Javascript自定义排序 node运行 实例
Jun 05 Javascript
谈谈对JavaScript原生拖放的深入理解
Sep 20 Javascript
js多个物体运动功能实例分析
Dec 20 Javascript
使用D3.js+Vue实现一个简单的柱形图
Aug 05 Javascript
JS函数节流和防抖之间的区分和实现详解
Jan 11 Javascript
详解一次Vue低版本安卓白屏问题的解决过程
May 30 Javascript
Vue分页效果与购物车功能
Dec 13 Javascript
2020京东618叠蛋糕js脚本(亲测好用)
Jun 02 Javascript
Vue中computed及watch区别实例解析
Aug 01 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编程函数安全篇
2013/01/08 PHP
完美解决PHP中的Cannot modify header information 问题
2013/08/12 PHP
Yii学习总结之数据访问对象 (DAO)
2015/02/22 PHP
PHP实现的XML操作类【XML Library】
2016/12/29 PHP
PHP-FPM 设置多pool及配置文件重写操作示例
2019/10/02 PHP
JavaScipt基本教程之前言
2008/01/16 Javascript
关于firefox的ElementTraversal 接口 使用说明
2010/11/11 Javascript
jQuery 阴影插件代码分享
2012/01/09 Javascript
js页面跳转的问题(跳转到父页面、最外层页面、本页面)
2013/08/14 Javascript
file控件选择上传文件确定后触发的js事件是哪个
2014/03/17 Javascript
C++中的string类的用法小结
2015/08/07 Javascript
js获取iframe中的window对象的实现方法
2016/05/20 Javascript
JS传值出现中文参数乱码的解决方法
2016/06/30 Javascript
vue2.x 父组件监听子组件事件并传回信息的方法
2017/07/17 Javascript
python基础教程之缩进介绍
2014/08/29 Python
在Python中用get()方法获取字典键值的教程
2015/05/21 Python
python实现数值积分的Simpson方法实例分析
2015/06/05 Python
使用Nginx+uWsgi实现Python的Django框架站点动静分离
2016/03/21 Python
python3学习笔记之多进程分布式小例子
2018/02/13 Python
通过Python模块filecmp 对文件比较的实现方法
2018/06/29 Python
对Django项目中的ORM映射与模糊查询的使用详解
2019/07/18 Python
解决tensorflow训练时内存持续增加并占满的问题
2020/01/19 Python
PyCharm MySQL可视化Database配置过程图解
2020/06/09 Python
python爬虫可以爬什么
2020/06/16 Python
python实现KNN近邻算法
2020/12/30 Python
世界第一曲奇连锁店:Mrs. Fields Cookies
2017/02/04 全球购物
澳大利亚在线购买儿童玩具:Toy Universe
2017/12/28 全球购物
精油和天然健康美容产品:Art Naturals
2018/01/27 全球购物
MYSQL基础面试题
2012/05/13 面试题
生物科学系大学生的自我评价
2013/12/20 职场文书
升旗仪式主持词
2014/03/19 职场文书
抽奖活动主持词
2014/03/31 职场文书
《青蛙看海》教学反思
2014/04/23 职场文书
党的群众路线批评与自我批评范文
2014/10/16 职场文书
岳庙导游词
2015/02/04 职场文书
营销策划分析:怎么策划才能更好销量产品?
2019/09/04 职场文书