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 相关文章推荐
Array对象方法参考
Oct 03 Javascript
JavaScript 小型打飞机游戏实现原理说明
Oct 28 Javascript
Javascript的各种节点操作实例演示代码
Jun 27 Javascript
JavaScript面向对象(极简主义法minimalist approach)
Jul 17 Javascript
JQueryEasyUI datagrid框架的基本使用
Apr 08 Javascript
Node.js实现Excel转JSON
Apr 24 Javascript
jQuery中通过ajax调用webservice传递数组参数的问题实例详解
May 20 Javascript
总结JavaScript的正则与其他语言的不同之处
Aug 25 Javascript
JS命令模式例子之菜单程序
Oct 10 Javascript
jquery操作ID带有变量的节点实例
Dec 07 Javascript
Angularjs 动态改变title标题(兼容ios)
Dec 29 Javascript
vue倒计时刷新页面不会从头开始的解决方法
Mar 03 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提示Call-time pass-by-reference has been deprecated in的解决方法[已测]
2012/05/06 PHP
PHP快速按行读取CSV大文件的封装类分享(也适用于其它超大文本文件)
2014/04/10 PHP
php程序总是提示验证码输入有误解决方案
2015/01/07 PHP
php简单解析mysqli查询结果的方法(2种方法)
2016/06/29 PHP
PHP从数组中删除元素的四种方法实例
2017/05/12 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
Yii2.0框架behaviors方法使用实例分析
2019/09/30 PHP
正则表达式判断是否存在中文和全角字符和判断包含中文字符串长度
2008/09/27 Javascript
基于jquery的横向滚动条(滑动条)
2011/02/24 Javascript
jquery实现经典的淡入淡出选项卡效果代码
2015/09/22 Javascript
window.location.reload 刷新使用分析(去对话框)
2015/11/11 Javascript
jQuery中Find选择器用法示例
2016/09/21 Javascript
JS实现含有中文字符串的友好截取功能分析
2017/03/13 Javascript
30分钟快速入门掌握ES6/ES2015的核心内容(上)
2018/04/18 Javascript
Vue 组件参数校验与非props特性的方法
2019/02/12 Javascript
Easyui 关闭jquery-easui tab标签页前触发事件的解决方法
2019/04/28 jQuery
基于jquery实现彩色投票进度条代码解析
2020/08/26 jQuery
如何搭建一个完整的Vue3.0+ts的项目步骤
2020/10/18 Javascript
Python的类实例属性访问规则探讨
2015/01/30 Python
python实现2048小游戏
2015/03/30 Python
python一行sql太长折成多行并且有多个参数的方法
2018/07/19 Python
python 在屏幕上逐字显示一行字的实例
2018/12/24 Python
Django 请求Request的具体使用方法
2019/11/11 Python
python如何求数组连续最大和的示例代码
2020/02/04 Python
使用sklearn的cross_val_score进行交叉验证实例
2020/02/28 Python
美国高品质个性化珠宝销售网站:Jewlr
2018/05/03 全球购物
管理部部长岗位职责
2013/12/05 职场文书
课程设计心得体会
2013/12/28 职场文书
金融专业大学生职业生涯规划范文
2014/01/16 职场文书
优秀学生党员先进事迹材料
2014/05/29 职场文书
优秀团员事迹材料
2014/12/25 职场文书
公司年会开场白
2015/06/01 职场文书
统招统分证明
2015/06/23 职场文书
卖车协议书范文
2016/03/23 职场文书
36个正则表达式(开发效率提高80%)
2021/11/17 Javascript
PostgreSQL 插入INSERT、删除DELETE、更新UPDATE、事务transaction
2022/04/12 PostgreSQL