關於數組的題

var a ={
    "name":"array",
    "length":10
};
var b = ["1","2","3","4"];
//判斷是否爲數組
// console.log( a instanceof Object );
// console.log( a instanceof Array );
// console.log( b instanceof Array );
// console.log( b instanceof Object );
// console.log(Array.isArray(b));
// console.log(b.constructor===Array)
// console.log(Object.prototype.toString.call(b) === "[object Array]");
// if(b.constructor.pop !== undefined){
//     console.log("是一個數組");
// }
//數組去重
var c =[3,3,4,5,6,8,9,9,8,4,5,5,1,2];
Array.prototype.distinct = function(){
    var arr = this,
    result = [],
    i,
    j,
    len=arr.length;
    //for循環是先執行外層循環,再執行內層循環,執行內循環時,是知足內層條件就一直執行,直到條件不知足,纔在執行外循環
    for(i=0;i<len;i++){
        //此處下標 i 的值爲0,執行裏面的循環,就是用下標爲0 的元素,與其餘全部的元素相比較,
        for(j=i+1;j<len;j++){
            //此處當前一個值與後一個值相等時,他們的下標都加一。解釋這裏,就是說此處小標i的值在後面有相等的,就過濾掉了下標i的值,繼續i加一的循環。
            if(arr[i]===arr[j]){
                j = ++i;
            }
            console.log(1111)
        }
        result.push(arr[i]);
        console.log(22222)
    }
    return result;
}
console.log(c.distinct());
Array.prototype.cuchong = function(){
    var ar= this,
    len = ar.length;
    ar.sort(function(a,b){
        return a-b;
    })
    //首先傳入的值是數組的長度,遞歸,發現後一個值與前一個值相等時,刪除掉後一個值。再遞歸
    function loop(index){
        if(index>=1){
            if(ar[index] === ar[index-1]){
                ar.splice(index,1)
            }
            loop(index-1);
        }
    }
    loop(len-1);
    return ar
};
var d =c.cuchong();
console.log(c.cuchong())
相關文章
相關標籤/搜索