1. 程式人生 > >JavaScript陣列去重的原型方法

JavaScript陣列去重的原型方法

      本文主要說明兩種原型方法來過濾陣列中的重複元素。

方法一:

思路:1)構建一個新的陣列存放結果;

          2)for迴圈中每次從原陣列中取出一個元素,用這個元素迴圈與結果陣列對比;

          3)若結果陣列中沒有該元素,則存到結果陣列中。

程式碼實現:

Array.prototype.unique1 = function(){
        var res = [this[0]];
        for(var i = 1; i < this.length; i++){
            var repeat = false;
            for(var j = 0; j < res.length; j++){
                if(this[i] == res[j]){
                    repeat= true;
                    break;
                }
            }
            if(!repeat){
                res.push(this[i]);
            }
        }
        return res;
    }
    var arrNum2 = [1,4,1,1,3,3,4,6,7,8,3,7,0,2,11,2,2,22,11,22];
    console.log(arrNum2.unique1());
方法二:

思路:1)構建一個臨時陣列存放結果;

          2)迴圈遍歷當前陣列,判斷當前陣列下標為i的元素是否已經儲存在臨時陣列,如果已儲存,則跳過,否則將此元素儲存到臨時陣列中。

程式碼實現:

    Array.prototype.method1 = function(){
        var arr=[];    //定義一個臨時陣列
        for(var i = 0; i < this.length; i++){    //迴圈遍歷當前陣列
            //判斷當前陣列下標為i的元素是否已經儲存到臨時陣列
            //如果已儲存,則跳過,否則將此元素儲存到臨時陣列中
            if(arr.indexOf(this[i]) == -1){
                arr.push(this[i]);
            }
        }
        return arr;
    };
    var arrNum1 = [1,4,1,1,3,3,4,6,7,8,3,7,0,2,11,2,2,22,11,22];
    console.log(arrNum1.method1());

兩種方法的結果: