Num:双重for循环去重
<script>
//双重for循环去重
var arr = [1,5,3,4,5,2,5];
for(var i=0;i<arr.length;i++){ //外循环为排序趟数
for(var j=i+1;j<arr.length;j++){ //内循环为每趟比较的次数
if(arr[i]==arr[j]){ //数组内前一位数与后一位数依次进行判断
//splice() 从数组中添加/删除项目,然后返回被删除的项目
arr.splice(j,1); //第一个等同于第二个,splice方法删除第二个
j--; //防止遗留数组内相同元素
}
}
}
console.log(arr);
</script>
输出arr如下:
Num2:使用indexOf()
<script>
//indexOf() 方法可返回某个指定的字符串值 在字符串中首次出现的位置。
var arr2 = [1,5,3,4,5,2,5];
var arr = [];//创建一个新的数组用来存储indexof()找到的元素
for(var i =0;i<arr2.length;i++){ //遍历数组arr2
//arr与arr2[i]对比,判断indexOf()在arr2[i]中是否找到与arr有相同元素
//(找到了返回0,没找到返回-1)
if(arr.indexOf(arr2[i])>=0){
continue; //找到后跳出循环
}else{
arr.push(arr2[i]);//将arr2[i]中没找到的元素追加到arr中;
}
}
console.log(arr);//1,5,3,4,2
</script>
arr输出如下
Num3:ES6:new set() 去重
这个是目前最简单的去重方法,但是这个方法不支持对象方法,可以支持一些简单的数据格式去重效率还是很快的,如果是复杂数据格式建议用一下一些方法
<script>
var arr3=[1,5,3,4,5,2,5];
var arr = new Set(arr3);
console.log(arr);//1,5,3,4,2
</script>
输出arr