你的位置:首页 > Java教程

[Java教程]js连接多个数组并删除重复的元素


js连接多个数组并删除重复的元素:
在实际应用中,可能需要将多个数组合并到一个数组中去,并且删除数组中重复的元素。
代码实例如下:

 

var a=["antzone","蚂蚁部落","市南区"], b=["新锐科技","蚂蚁部落","努力奋斗"], c=[2,"新锐科技","js教程"], _a=a.concat(b).concat(c), _hash={}, _new=[]; for(var i=_a.length;i--;){  if(!_hash[_a[i]]) {   _hash[_a[i]]=1;   _new.push(_a[i]);  }; }; console.log(_new)

 

以上代码实现了我们的要求,可以将三个数组连接起来,并且删除了重复的元素,下面介绍一下此效果的实现过程。
一.实现原理:
首先使用concat函数将几个数组连接在一起,然后再删除新数组中重复的元素,删除重复元素的方法其实非常的简单,就是将数组中的元素作为对象的属性,首先判断对象中如果没有此属性,如果没有的话,则将此值存入新的数组,然后再将此值作为对象的属性,如此重复,具体可以参阅代码注释。
二.代码注释:
1.var a=["antzone","蚂蚁部落","市南区"],使用直接量方式声明数组。
2._a=a.concat(b).concat(c),将数组连接为一个数组。
3._hash={},声明一个对象,此对象会以数组的元素作为属性。
4._new=[],声明一个新数组,用来存储删除重复后的元素。
5.for(var i=_a.length;i--;){},循环语句,这个写法等同于for(var i=_a.length;i>0i--;)。
6.if(!_hash[_a]),判断对象中是否含所有此属性。
7._hash[_a]=1,如果没有的话就添加此属性并将属性值设置为1,这里设置为1其实没有什么特别用以,虽然一个都可以。
8._new.push(_a),将此元素添加到新的数组。
三.相关阅读:
1.contact()函数可以参阅javascript的Array对象的concat()方法一章节。 
2.push()函数可以参阅javascript的Array对象的push()方法一章节。 

原文地址是:http://www.softwhy.com/forum.php?mod=viewthread&tid=11491

更多内容可以参阅:http://www.softwhy.com/javascript/