JavaScript中关于for循环删除数组元素内容时出现的问题


Posted in Javascript onNovember 21, 2016

昨天用for循环进行数组去重的时候出现的问题,

首先,用双重for循环把前一个和所有后面的元素进行比较,如果相等则删除。

但是,如果数组里面有三个以上连续相等的元素的时候,就会出现问题。 

var arr = [1,1,1,2,2];
for(var i=0; i<arr.length-1; i++){
for(var j=i+1; j<arr.length; j++){
if(arr[i] === arr[j]){
arr.splice(j,1);
}
}
} 
document.write("arr:"+arr);

输出:

JavaScript中关于for循环删除数组元素内容时出现的问题

这是因为当数组删除一个元素的时候,数组长度减1,后面点元素就会往前移动一位,索引也减1,但是j还是进行了j++的操作。

即第一次进行删除是,i=0 j=1,删除以后arr=[1,1,2,2],然后j=2,就会忽略掉删除以后j=1的元素继续往后遍历。

因此在每次进行了删除的情况下,要对j进行减1

var arr = [1,1,1,2,2];
for(var i=0; i<arr.length-1; i++){
for(var j=i+1; j<arr.length; j++){
if(arr[i] == arr[j]){
arr.splice(j--,1);
}
}
}
document.write("arr:"+arr);

输出:

JavaScript中关于for循环删除数组元素内容时出现的问题

类似关于对数组元素进行删除的,都要考虑数组长度会减1,后面的元素都会往前移动一位

以上所述是小编给大家介绍的JavaScript中关于for循环删除数组元素内容时出现的问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JavaScript中的Array对象使用说明
Jan 17 Javascript
js库Modernizr的介绍和使用
May 07 Javascript
详解JavaScript中的表单验证
Jun 16 Javascript
jquery插件pagination实现无刷新ajax分页
Sep 30 Javascript
详解Document.Cookie
Dec 25 Javascript
JS实现获取当前URL和来源URL的方法
Aug 24 Javascript
全面解析node 表单的图片上传
Nov 21 Javascript
jquery中有哪些api jQuery主要API
Nov 20 jQuery
使用webpack3.0配置webpack-dev-server教程
May 29 Javascript
简化版的vue-router实现思路详解
Oct 19 Javascript
Vue中JS动画与Velocity.js的结合使用
Feb 13 Javascript
微信小程序封装分享与分销功能过程解析
Aug 13 Javascript
jQuery用FormData实现文件上传的方法
Nov 21 #Javascript
遍历js中对象的属性和值的实例
Nov 21 #Javascript
JavaScript数据结构链表知识详解
Nov 21 #Javascript
jQuery简单自定义图片轮播插件及用法示例
Nov 21 #Javascript
Node.js测试中的Mock文件系统详解
Nov 21 #Javascript
JavaScript中boolean类型之三种情景实例代码
Nov 21 #Javascript
基于jQuery实现Tabs选项卡自定义插件
Nov 21 #Javascript
You might like
php生成excel列序号代码实例
2013/12/24 PHP
PHP生成短网址的3种方法代码实例
2014/07/08 PHP
prototype 的说明 js类
2006/09/07 Javascript
JavaScript Title、alt提示(Tips)实现源码解读
2010/12/12 Javascript
javascript之querySelector和querySelectorAll使用说明
2011/10/09 Javascript
在jquery中combobox多选的不兼容问题总结
2013/12/24 Javascript
js鼠标悬浮出现遮罩层的方法
2015/01/28 Javascript
jQuery实现图片局部放大镜效果
2016/03/17 Javascript
JS完成画圆圈的小球
2017/03/07 Javascript
Angular 4环境准备与Angular cli创建项目详解
2017/05/27 Javascript
基于jQuery实现图片推拉门动画效果的两种方法
2017/08/26 jQuery
JavaScript学习笔记之惰性函数示例详解
2017/08/27 Javascript
利用原生js实现html5小游戏之打砖块(附源码)
2018/01/03 Javascript
解决npm管理员身份install时出现权限的问题
2018/03/16 Javascript
详解在不使用ssr的情况下解决Vue单页面SEO问题
2018/11/08 Javascript
JS实现简单的抽奖转盘效果示例
2019/02/16 Javascript
js 使用ajax设置和获取自定义header信息的方法小结
2020/03/12 Javascript
openLayer4实现动态改变标注图标
2020/08/17 Javascript
详解JavaScript 高阶函数
2020/09/14 Javascript
python使用PyGame模块播放声音的方法
2015/05/20 Python
详解python 发送邮件实例代码
2016/12/22 Python
Python文件操作之合并文本文件内容示例代码
2017/09/19 Python
Python全排列操作实例分析
2018/07/24 Python
详解Python并发编程之从性能角度来初探并发编程
2019/08/23 Python
tensorflow对图像进行拼接的例子
2020/02/05 Python
Desigual德国官网:在线购买原创服装
2018/03/27 全球购物
哈曼俄罗斯官方网上商店:Harman.club
2020/07/24 全球购物
函授本科自我鉴定
2013/11/03 职场文书
测试工程师职业规划书
2014/02/06 职场文书
铲车司机岗位职责
2014/03/15 职场文书
乡镇党委书记第三阶段个人整改措施
2014/09/16 职场文书
2015年加油站工作总结
2015/05/13 职场文书
2015年艾滋病防治工作总结
2015/05/22 职场文书
党员理论学习心得体会
2016/01/21 职场文书
python如何在word中存储本地图片
2021/04/07 Python
Vue CLI中模式与环境变量的深入详解
2021/05/30 Vue.js