• 设为首页
  • 加入收藏
  • 我要投稿
  • 联系站长
  • 网站模板技术交流
当前位置:模板网首页 > 建站教程 > JS、jQ >  js循环删除数组中的重正文

js循环删除数组中的重复项的问题

作者:网页模板
类型:文章教程
点击次数:
发布时间:2019-05-31 10:48
分享到:
假设有下面的数组,我想通过循环将里面的1删除掉:
var arr = [1,1,1,1,2,2,2,2];
for(var i=0; i<arr.length; i++){
    if(arr[i] === 1){
        arr.splice(i,1);
    }
}
最后得到的结果却是:[1, 1, 2, 2, 2, 2],1并没有删除干净?!

其实原因很简单,当删除了第一个1,这个时候数组的第0个仍然是1,可是i已经++变成了1,从数组第二个开始删除了,以此类推,所以,总是隔一个删除,这时只要将i++再变成0,从数组第一个重新开始遍历,也就是i变成-1即可,所以代码修改如下:
var arr = [1,1,1,1,2,2,2,2];
for(var i=0; i<arr.length; i++){
    if(arr[i] === 1){
        arr.splice(i,1);
        i=-1;
    }
}
最后得到的结果是:[2, 2, 2, 2] (责任编辑:网页模板)
  • 本文标签:
  • js数组
module.exports,exports,export和export default,import与require区
getBoundingClientRect() 与 offset