javascript模拟map输出与去除重复项的方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript模拟map输出与去除重复项的方法相关的知识,希望对你有一定的参考价值。

参考技术A 本文实例讲述了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模拟map输出与去除重复项的方法的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript笔记 - Object对象特性的应用

去除list集合中重复项的几种方法

去除list集合中重复项的几种方法-转载

JAVA中的List里的Map 如何去除重复的Key?

Excel2003 去除重复项

TZOJ--4850: 数列(模拟)