let arr=[1,2,2,3,1,4,4,8,8,8,8,5,5,6,6,7,7,8]
//第一次遍历数组
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(i,1)
//i是第一层遍历的下标,因为上一步删除了一条数据,所以下标也需要减一,否则实际下标,要比数组中的数据更多
i--;
//j 也同样需要和i一样减一,保持遍历依旧同步判断
j--;
}
}
//去重完成以后,数组数据在控制台输出
console.log(arr)
第一个for循环是拿出一条数据,和第二个for循环中的所有数据,进行对比。
但是为了防止下标相同的数据进行对比,所以第二个for循环要在第一个for循环数据下标的基础上加一,这样对比的数据就不会出现相同下标的数据。
