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 相关文章推荐
script标签属性type与language使用选择
Dec 02 Javascript
jQuery多个input求和的实现方法
Feb 12 Javascript
js console.log打印对像与数组用法详解
Jan 21 Javascript
在AngularJS中使用jQuery的zTree插件的方法
Apr 21 Javascript
jQuery 利用$.ajax 时获取原生XMLHttpRequest 对象的方法
Aug 25 Javascript
Javascript实现倒计时(防页面刷新)实例
Dec 13 Javascript
BootStrap Datepicker 插件修改为默认中文的实现方法
Feb 10 Javascript
vue-resourse将json数据输出实例
Mar 08 Javascript
解决vue router组件状态刷新消失的问题
Aug 01 Javascript
web页面和微信小程序页面实现瀑布流效果
Sep 26 Javascript
Electron-vue脚手架改造vue项目的方法
Oct 22 Javascript
JavaScript 与 TypeScript之间的联系
Nov 27 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
模板引擎正则表达式调试小技巧
2011/07/20 PHP
用PHP实现Ftp用户的在线管理
2012/02/16 PHP
php数组声明、遍历、数组全局变量使用小结
2013/06/05 PHP
跟我学Laravel之安装Laravel
2014/10/15 PHP
php天翼开放平台短信发送接口实现方法
2014/12/22 PHP
PHP可变变量学习小结
2015/11/29 PHP
网站被恶意镜像怎么办 php一段代码轻松搞定(全面版)
2018/10/23 PHP
laravel框架实现后台登录、退出功能示例
2019/10/31 PHP
JavaScript对象模型-执行模型
2008/04/28 Javascript
extjs 的权限问题 要求控制的对象是 菜单,按钮,URL
2010/03/09 Javascript
jQuery中hasClass()方法用法实例
2015/01/06 Javascript
javascript+css3 实现动态按钮菜单特效
2016/02/06 Javascript
JavaScript function函数种类详解
2016/02/22 Javascript
jQuery实现下拉加载功能实例代码
2016/04/01 Javascript
如何利用Promises编写更优雅的JavaScript代码
2016/05/17 Javascript
EasyUI创建对话框的两种方式
2016/08/23 Javascript
Node.js测试中的Mock文件系统详解
2016/11/21 Javascript
jQuery实现IE输入框完成placeholder标签功能的方法
2017/09/20 jQuery
HTML5+JS+JQuery+ECharts实现异步加载问题
2017/12/16 jQuery
官方推荐react-navigation的具体使用详解
2018/05/08 Javascript
分享Angular http interceptors 拦截器使用(推荐)
2019/11/10 Javascript
详尽讲述用Python的Django框架测试驱动开发的教程
2015/04/22 Python
Python使用Matplotlib实现Logos设计代码
2017/12/25 Python
python批量读取txt文件为DataFrame的方法
2018/04/03 Python
python3将视频流保存为本地视频文件
2018/06/20 Python
解决Tensorflow sess.run导致的内存溢出问题
2020/02/05 Python
美国在线自行车商店:Jenson USA
2018/05/22 全球购物
I.T集团香港官方商城:ITeSHOP.com Hong Kong
2019/02/15 全球购物
男女钓鱼靴和甲板鞋:XTRATUF
2021/01/09 全球购物
工程建设实施方案
2014/03/14 职场文书
《观舞记》教学反思
2014/04/16 职场文书
团队队名口号大全
2014/06/06 职场文书
行政部经理助理岗位职责
2014/06/15 职场文书
2015年秋季运动会前导词
2015/07/20 职场文书
创业计划书之餐饮馄饨店
2019/07/18 职场文书
MySQL库表太大怎么办? 数据库分库分表项目实践
2022/04/11 MySQL