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())