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 相关文章推荐
Locate a File Using a File Open Dialog Box
Jun 18 Javascript
JS Excel读取和写入操作(模板操作)实现代码
Apr 11 Javascript
jquery URL参数判断,确定菜单样式
May 31 Javascript
在jQuery中 常用的选择器介绍
Apr 16 Javascript
json格式的时间显示为正常年月日的方法
Sep 08 Javascript
JS继承之借用构造函数继承和组合继承
Sep 07 Javascript
Angular 2应用的8个主要构造块有哪些
Oct 17 Javascript
bootstrap中的 form表单属性role=&quot;form&quot;的作用详解
Jan 20 Javascript
JS实现加载和读取XML文件的方法详解
Apr 24 Javascript
总结js函数相关知识点
Feb 27 Javascript
解决vue中使用swiper插件问题及swiper在vue中的用法
Apr 04 Javascript
原生JS实现DOM加载完成马上执行JS代码的方法
Sep 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
在普通HTTP上安全地传输密码
2007/07/21 PHP
Php header()函数语法及使用代码
2013/11/04 PHP
php获取文件夹路径内的图片以及分页显示示例
2014/03/11 PHP
php简单实现多维数组排序的方法
2016/09/30 PHP
PHP读取、解析eml文件及生成网页的方法示例
2017/09/04 PHP
PDO::inTransaction讲解
2019/01/28 PHP
JQuery事件e参数的方法preventDefault()取消默认行为
2013/09/26 Javascript
JS动态添加iframe的代码
2015/09/14 Javascript
jQuery 3.0 的变化及使用方法
2016/02/01 Javascript
JavaScript每天必学之数组和对象部分
2016/09/17 Javascript
JS控制FileUpload的上传文件类型实例代码
2016/10/07 Javascript
微信小程序获取循环元素id以及wx.login登录操作
2017/08/17 Javascript
Node.JS段点续传:Nginx配置文件分段下载功能的实现方法
2018/03/12 Javascript
JS实现字符串翻转的方法分析
2018/08/31 Javascript
解决IE11 vue +webpack 项目中数据更新后页面没有刷新的问题
2018/09/25 Javascript
Javascript中的this,bind和that使用实例
2019/12/05 Javascript
Element PageHeader页头的使用方法
2020/07/26 Javascript
Vue 实现监听窗口关闭事件,并在窗口关闭前发送请求
2020/09/01 Javascript
[02:49]DAC2018决赛日TOP5 LGD开启黑暗之门绝杀VP
2018/04/08 DOTA
pycharm 使用心得(六)进行简单的数据库管理
2014/06/06 Python
Python设置Socket代理及实现远程摄像头控制的例子
2015/11/13 Python
python3使用PyMysql连接mysql数据库实例
2017/02/07 Python
python+pyqt实现右下角弹出框
2017/10/26 Python
Pandas 数据框增、删、改、查、去重、抽样基本操作方法
2018/04/12 Python
Pandas 数据处理,数据清洗详解
2018/07/10 Python
python mysql中in参数化说明
2020/06/05 Python
用python写一个带有gui界面的密码生成器
2020/11/06 Python
乌克兰第一的珠宝网上商店:Gold.ua
2019/11/29 全球购物
JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
2013/07/02 面试题
函授毕业生的自我鉴定
2013/11/26 职场文书
校园达人秀策划书
2014/01/12 职场文书
寒假实习自荐信
2014/01/26 职场文书
社区党务公开实施方案
2014/03/18 职场文书
服务承诺口号
2014/05/22 职场文书
培训研修方案
2014/06/06 职场文书
追悼词范文大全
2015/06/23 职场文书