1.第一种,本人首先想到的就是用另一个数组装,装进一个之后与原数组中的元素一个一个去比
Array.prototype.set = function(){
var array=[this[0]];
for(var i=1;i<this.length;i++){
for(var j=0;j<array.length;j++)
if(this[i]==array[j]) //将this[i]中的值与array数组的值进行比较,若相等,则break;
break;
if(j==array.length) //只有当this[i]的值与array中的元素全都不相等时,将其push到array数组
array.push(this[i]);
}
return array;
};
var arr=[1,2,3,4,3,4,2,5,5];
console.log(arr.set()); //[1,2,3,4,5]
2.第二种,用splice方法
Array.prototype.set=function(){
for(var i=0;i<this.length;i++)
for(var j=i+1;j<this.length;j++)
if(this[i]==this[j]) //将this[i]的值与其之后的值一一进行比较,若相等,则删除
this.splice(j,1);
return this;
}
var arr=[1,2,3,4,3,4,2,5,5];
console.log(arr.set()); //[1,2,3,4,5]
3.第三种方法,用indexOf方法,将原数组的元素放入新数组,若新数组中查询到的原数组中元素的下标为-1,则放入新数组。
Array.prototype.set=function(){
var res=[];
for(var i=0;i<this.length;i++){
var index=res.indexOf(this[i]);
if(index==-1) //判断新数组是否存在与this[i]相同的数
res.push(this[i]);}
return res;
}
var arr=[1,2,3,4,3,4,2,5,5];
console.log(arr.set()); //[1,2,3,4,5]