js 去重的几种方法

1.声明一个空数组,用来接收不同元素,利用两个for循环去遍历

 1 var arr = [1,'a',56,'dj', 'dfa', 56, 'a']
 2 function qu(arr){
 3     var newArray=[];
 4     for(var i= 0; i < arr.length; i++)
 5     {
 6         var result = false;
 7         for(var j = 0; j < newArray.length; j++)
 8         {
 9             if (arr[i] == newArray[j])
10             {
11                 result = true;
12                 break;
13             };
14         }
15         if(!result)
16         {
17             newArray.push(arr[i]);
18         }
19     }
20     return newArray;
21 }
22 alert(qu(arr))

2.引入对象,将数组元素设置为对象的属性(对象属性不能重复)

var arr = [1,'a',56,'dj', 'dfa', 56, 'a']
function qcfn(arr){
    var obj = {};
    var temp = [];
    for(var i = 0; i < arr.length; i++){
        if (!obj[arr[i]]) 
        {
            temp.push(arr[i]);
            obj[arr[i]] = true;
        };
    }
    return temp;
}
alert(qcfn(arr))

3.利用indexOf()

 1 var arr = [1,'a',56,'dj', 'dfa', 56, 'a']
 2 function unique(arr)
 3 {
 4     var result = [];
 5     for(var i = 0; i<arr.length; i++)
 6     {
 7         if (result.indexOf(arr[i]) == -1)//判断字符串出现位置,没有找到返回-1
 8         {
 9             result.push(arr[i])
10         };
11     }
12     return result;
13 }
14 alert(unique(arr))

 4.先排序后去重

var arr = [1,'a',56,'dj','dfa', 56,'a']
function unique(arr)
{
    var result = [];
    arr.sort();

    result.push(arr[0]);

    for(var i = 1; i < arr.length; i++)
    {
        if (arr[i-1] != arr[i])
        {
            result.push(arr[i])
        };
    }
    return result;
}
alert(unique(arr))

 

posted @ 2015-05-05 14:32  张彦正  阅读(607)  评论(0编辑  收藏  举报