javaScript 数组去重 双层for循环
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循环数据下标的基础上加一,这样对比的数据就不会出现相同下标的数据。