js连接多个数组并删除重复的元素
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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/
以上是关于js连接多个数组并删除重复的元素的主要内容,如果未能解决你的问题,请参考以下文章