数组去重复 <script> //数组去重 var ary = [1,2,3,4,5,6,5,6,6,6,4,3]; //解决方案 //依次拿出数组中的每一项(排除最后一项) //和当前拿出项后面的每一项一次比较 //如果发现有重复的,我们把找到的这个重复项在原有数组中删除(splice) for (var i = 0;i<ary.length-1;i++){ var item = ary[i]; //item 依次拿出每一项 // 和当前项后面的每一项比较:起始索引应该是i+1 k<ary.length找到末尾一次比较 for (var k = i+1; k < ary.length; k++) { //后面需要拿出来和当前项目比较的这个值 if(item===ary[k]){ //相等:重复了,我们拿出来的k这个比较项在 原有数组中删除 /* /!**!/ary.splice(k,1);*/ //这样做会导致数组塌陷问题,当我们把数组删除时, // 原有数组的索引发生了改变,此时,我们k继续累加1,下一次在拿出来的结果下一次的结果就会跳过一位 //原数组[1,2,3,4] //i=1 =>2 我们把这一项干掉,然后i++ i=2 //原数组[1,3,4] //i=2这一项是4, 3的这一项目就错过了 ary.splice(k,1); k--;//删除后先减减,在加加 相当于没加没减 } } } console.log(ary);