方法一
-思路:每遍历一次就和之前的所有做比较,不相等则放入新的数组中!
-这里用的原型 个人做法;
Array.prototype.unique = function(){
var len = this.length,
newArr = [],
flag = 1;
for(var i = 0; i < len; i++, flag = 1){
for(var j = 0; j < i; j++){
if(this[i] == this[j]){
flag = 0; //找到相同的数字后,不执行添加数据
}
}
flag ? newArr.push(this[i]) : '';
}
return newArr;
}
方法二
var arr=[1,2,3,3,4,4,5,5,6,1,9,3,25,4];
Array.prototype.unique2 = function(){
var n = []; //一个新的临时数组for(var i = 0; i < this.length; i++) //遍历当前数组 {
//如果当前数组的第i已经保存进了临时数组,那么跳过, //否则把当前项push到临时数组里面
if (n.indexOf(this[i]) == -1) n.push(this[i]);
}
return n;
}
var newArr2=arr.unique2(arr);
alert(newArr2); //输出1,2,3,4,5,6,9,25
方法三
-采用es6的set容器实现去重
var arr = [1,1,2,2,3]
var arr1 = new Set(arr)
console.log(arr1) //输出1,2,3