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 相关文章推荐
学习YUI.Ext基础第一天
Mar 10 Javascript
利用CSS、JavaScript及Ajax实现高效的图片预加载
Oct 16 Javascript
多个js毫秒倒计时同时进行效果
Jan 05 Javascript
javascript中apply、call和bind的使用区别
Apr 05 Javascript
AngularJs表单验证实例详解
May 30 Javascript
BootStrap glyphicon图标无法显示的解决方法
Sep 06 Javascript
JS键盘版计算器的制作方法
Dec 03 Javascript
详解webpack 最简打包结果分析
Feb 20 Javascript
使用 vue 实现灭霸打响指英雄消失的效果附demo
May 06 Javascript
sortable+element 实现表格行拖拽的方法示例
Jun 07 Javascript
JS 数组基本用法入门示例解析
Jan 16 Javascript
JSON 入门教程基础篇 json入门学习笔记
Sep 22 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
让你同时上传 1000 个文件 (二)
2006/10/09 PHP
PHP实现懒加载的方法
2015/03/07 PHP
PHP通过加锁实现并发情况下抢码功能
2016/08/10 PHP
详解如何在云服务器上部署Laravel
2017/06/30 PHP
PHP 构造函数和析构函数原理与用法分析
2020/04/21 PHP
php的对象传值与引用传值代码实例讲解
2021/02/26 PHP
jquery 如何动态添加、删除class样式方法介绍
2012/11/07 Javascript
window.location的重写及判断location是否被重写
2014/09/04 Javascript
实例讲解javascript注册事件处理函数
2016/01/09 Javascript
jQuery获取某天的农历日期并判断是否除夕或新年的方法
2016/03/01 Javascript
微信小程序侧边栏滑动特效(左右滑动)
2017/01/23 Javascript
vue.js获取数据库数据实例代码
2017/05/26 Javascript
vue-cli系列之vue-cli-service整体架构浅析
2019/01/14 Javascript
详解Vue用cmd创建项目
2019/02/12 Javascript
详解vue-cli 脚手架 安装
2019/04/16 Javascript
跟老齐学Python之有容乃大的list(4)
2014/09/28 Python
黑科技 Python脚本帮你找出微信上删除你好友的人
2016/01/07 Python
python变量不能以数字打头详解
2016/07/06 Python
Python udp网络程序实现发送、接收数据功能示例
2019/12/09 Python
TensorFlow设置日志级别的几种方式小结
2020/02/04 Python
Python打包模块wheel的使用方法与将python包发布到PyPI的方法详解
2020/02/12 Python
canvas实现二维码和图片合成的示例代码
2018/08/01 HTML / CSS
洛杉矶时尚女装系列:J.ING US
2019/03/17 全球购物
精选奢华:THE LIST
2019/09/05 全球购物
Hotels.com日本:国外和海外住宿,酒店预订
2019/12/13 全球购物
工程专业求职自荐书范文
2014/02/08 职场文书
大学生就业策划书范文
2014/04/04 职场文书
效能监察建议书
2014/05/19 职场文书
解除财产保全担保书
2014/05/20 职场文书
水利水电专业自荐信
2014/07/08 职场文书
学院党委班子四风问题自查报告及整改措施
2014/10/25 职场文书
2014年客服工作总结与计划
2014/12/09 职场文书
小学生作文批改评语
2014/12/25 职场文书
党员廉洁自律个人总结
2015/02/13 职场文书
2019安全宣传标语大全
2019/08/14 职场文书
CSS作用域(样式分割)的使用汇总
2021/11/07 HTML / CSS