js-数组去重-塌陷

let ary = [1,2,0,0,2,4,5,6,7,7,8,8,9,0,0]
//外层循环不用拿最后一项
for (let i = 0; i < ary.length-1; i++) {
//item:依次拿出每一项
let item = ary[i]
// 二次循环j 和外层item进行比较,起始索引是i+1,拿到数组末尾
for(let j = i +1;j<ary.length;j++) {
if(item === ary[j]) {
// console.log(ary[j])
//j是当前位置,每删除一次都会从新计算下一次索引
console.log(j)
//通过索引j删除原有数组中的重复数据
//索引如跳过一位
/*导致数组塌陷问题,当我们把前项删除后,后面每一项1都要向前前进一位
也就是原有数组的索引发生了变化,此时我们的k继续累加1,下一次在拿出来的结果就会跳过一位
*/
ary.splice(j,1)
//解决塌陷的问题,给索引恢复下原来的值
j--;
}
}
}
console.log(ary)

posted @ 2020-12-07 23:06  Smile浅笑  阅读(197)  评论(0编辑  收藏  举报