关于数组的题

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())
原文地址:https://www.cnblogs.com/Millet-23/p/9670661.html