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 类似flash效果的立体图片浏览器
Feb 08 Javascript
网页从弹窗页面单选框传值至父页面代码分享
Sep 29 Javascript
jquery获取url参数及url加参数的方法
Oct 26 Javascript
详解JavaScript对象序列化
Jan 19 Javascript
jQuery下拉框的简单应用
Jun 24 Javascript
原生js实现验证码功能
Mar 16 Javascript
Vue.js实现在下拉列表区域外点击即可关闭下拉列表的功能(自定义下拉列表)
May 30 Javascript
vue.js异步上传文件前后端实现代码
Aug 22 Javascript
vue-cli V3.0版本的使用详解
Oct 24 Javascript
Vue封装全局过滤器Filters的步骤
Sep 16 Javascript
vant 解决tab切换插件标题样式自定义的问题
Nov 13 Javascript
浅谈 JavaScript 沙箱Sandbox
Nov 02 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内核探索之解释器的执行过程
2015/12/22 PHP
Zend Framework教程之Autoloading用法详解
2016/03/08 PHP
php unicode编码和字符串互转的方法
2020/08/12 PHP
使用CSS3实现字体颜色渐变的实现
2021/03/09 HTML / CSS
jQuery Tips 为AJAX回调函数传递额外参数的方法
2010/12/28 Javascript
js自定义方法通过隐藏iframe实现文件下载
2013/02/21 Javascript
JS localStorage实现本地缓存的方法
2013/06/22 Javascript
Jquery 动态生成表格示例代码
2013/12/24 Javascript
Javascript中引用示例介绍
2014/02/21 Javascript
Jquery 返回json数据在IE浏览器中提示下载的问题
2014/05/18 Javascript
AngularJS单选框及多选框实现双向动态绑定
2016/01/13 Javascript
javascript自动切换焦点控制效果完整实例
2016/02/02 Javascript
javascript实现简易计算器的代码
2016/05/31 Javascript
浅谈js中子页面父页面方法 变量相互调用
2016/08/04 Javascript
Vue.js使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用
2017/05/10 Javascript
Vue.js自定义事件的表单输入组件方法
2018/03/08 Javascript
详解html-webpack-plugin插件(用法总结)
2018/09/12 Javascript
详解vue使用插槽分发内容slot的用法
2019/03/28 Javascript
为vue项目自动设置请求状态的配置方法
2019/06/09 Javascript
JavaScript实现简易计算器小功能
2020/10/22 Javascript
Python打印“菱形”星号代码方法
2018/02/05 Python
Random 在 Python 中的使用方法
2018/08/09 Python
python实现多张图片拼接成大图
2019/01/15 Python
使用Python的SymPy库解决数学运算问题的方法
2019/03/27 Python
PythonWeb项目Django部署在Ubuntu18.04腾讯云主机上
2019/04/01 Python
Django的ListView超详细用法(含分页paginate)
2020/05/21 Python
联想香港官方网站及网店:Lenovo香港
2018/04/13 全球购物
竞选演讲稿范文
2013/12/28 职场文书
人事部岗位职责范本
2014/03/05 职场文书
幼儿园教师师德师风演讲稿:爱我所爱 无悔青春
2014/09/10 职场文书
民主生活会发言材料
2014/10/20 职场文书
班主任先进事迹材料
2014/12/17 职场文书
企业开业庆典答谢词
2015/01/20 职场文书
2015仓库保管员年终工作总结
2015/05/13 职场文书
MySQL三种方式实现递归查询
2022/04/18 MySQL
什么是clearfix (一文搞清楚css清除浮动clearfix)
2023/05/21 HTML / CSS