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写的一个自定义弹出式对话框代码
Jan 17 Javascript
jQuery在vs2008及js文件中的无智能提示的解决方法
Dec 30 Javascript
JS解决url传值出现中文乱码的另类办法
Apr 08 Javascript
JS跨域问题详解
Nov 25 Javascript
分享我对JS插件开发的一些感想和心得
Feb 04 Javascript
jQuery实现点击查看大图并以弹框的形式居中
Aug 08 Javascript
JS与jQuery实现隔行变色的方法
Sep 09 Javascript
正则表达式,替换所有HTML标签的简单实例
Nov 28 Javascript
javascript数组去重常用方法实例分析
Apr 11 Javascript
Vue单文件组件的如何使用方式介绍
Jul 28 Javascript
Vue.js 2.0和Cordova开发webApp环境搭建方法
Feb 26 Javascript
AngularJS实现多级下拉框
Mar 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 调试环境(IIS+PHP+MYSQL)
2007/01/10 PHP
PHPMYADMIN 简明安装教程 推荐
2010/03/07 PHP
比较strtr, str_replace和preg_replace三个函数的效率
2013/06/26 PHP
CI框架出现mysql数据库连接资源无法释放的解决方法
2016/05/17 PHP
基于jquery的图片懒加载js
2010/06/30 Javascript
解决3.01版的jquery.form.js中文乱码问题的解决方法
2012/03/08 Javascript
浅析js中取绝对值的2种方法
2013/07/09 Javascript
Nodejs实现多人同时在线移动鼠标的小游戏分享
2014/12/06 NodeJs
jquery队列函数用法实例
2014/12/16 Javascript
javascript实现漂亮的拖动层,窗口拖拽特效
2015/04/24 Javascript
AngularJS基础 ng-show 指令简单示例
2016/08/03 Javascript
微信小程序 利用css实现遮罩效果实例详解
2017/01/21 Javascript
vue中用动态组件实现选项卡切换效果
2017/03/25 Javascript
node中Express 动态设置端口的方法
2017/08/04 Javascript
小程序实现自定义导航栏适配完美版
2019/04/02 Javascript
VueJs里利用CryptoJs实现加密及解密的方法示例
2019/04/29 Javascript
vue实现中部导航栏布局功能
2019/07/30 Javascript
Vue使用NProgress的操作过程解析
2019/10/10 Javascript
js实现简单的日历显示效果函数示例
2019/11/25 Javascript
js实现限定范围拖拽的示例
2020/10/26 Javascript
记录Django开发心得
2014/07/16 Python
Python中matplotlib中文乱码解决办法
2017/05/12 Python
Django 限制用户访问频率的中间件的实现
2018/08/23 Python
对python GUI实现完美进度条的示例详解
2018/12/13 Python
TensorFlow基本的常量、变量和运算操作详解
2020/02/03 Python
Pytorch .pth权重文件的使用解析
2020/02/14 Python
Python中lru_cache的使用和实现详解
2021/01/25 Python
html5 postMessage解决跨域、跨窗口消息传递方案
2016/12/20 HTML / CSS
Booking.com亚太地区:Booking.com APAC
2020/02/07 全球购物
TCP/IP中的TCP和IP分别承担什么责任
2012/04/21 面试题
医学专业本科毕业生自我鉴定
2013/12/28 职场文书
幼儿园教师考核制度
2014/02/01 职场文书
给领导的检讨书
2014/02/16 职场文书
党员自我评价2015
2015/03/03 职场文书
2016年小学党支部创先争优活动总结
2016/04/05 职场文书
MySQL索引失效十种场景与优化方案
2023/05/08 MySQL