利用JavaScript去掉数组中重复项
利用JavaScript的object的特性,我们可以非常容易的实现将一个数组的重复项去掉。
object的特性是:key一定是唯一的。
把数组重复项去掉:
1 将数组转换成一个object对象,数组的值作为object对象的 key
因为key是唯一的,碰到重复的数组值的时候,object不会添加key
2 将object对象转换成数组,key为数组的值。
在之前的重复数组,每一个值实际上对应object只有一个key,这样在还原到数组的时候,重复值就去掉了
1 /*用object的特性去掉数组的重复项:
2 1 把数组转化成oject对象,用数组的值当作obj的key
3 2 把object再转换成数组
4 */
5
6 // 传入数组 返回object对象
7 var toObj = function( arr ){
8 obj = {};
9 for(var temp in arr){
10 //对arr的每一个值添加到obj的key,value都是true
11 obj[arr[temp]] = true;
12 }
13 return obj;
14 };
15 // 传入obj对象 返回arr数组
16 var toArr = function( obj ){
17 var arr = [];
18 for(var temp in obj){
19 //把所有的key push到数组当中
20 arr.push(temp);
21 }
22 return arr;
23 };
24 //把两个方法联合起来
25 var getUniq = function(arr){
26 return toArr( toObj(arr) );
27 };
28
29
30 var arr = [1,1,2,2,3,3,4,4,5,5,5,6,6,6,6,6,6,5,4,3,54,8,11];
31
32 alert(getUniq(arr));