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 和 CSS 实现脚注(Footnote)效果
Sep 09 Javascript
jQuery 验证插件 Web前端设计模式(asp.net)
Oct 17 Javascript
利用jquery的获取JS文件中的字符串内容
Feb 14 Javascript
3种不同方式的焦点图轮播特效分享
Oct 30 Javascript
js动态添加表格数据使用insertRow和insertCell实现
May 22 Javascript
jQuery实现简单的日期输入格式化控件
Mar 12 Javascript
JQuery鼠标移到小图显示大图效果的方法
Jun 10 Javascript
异步安全加载javascript文件的方法
Jul 21 Javascript
基于BootStrap Metronic开发框架经验小结【二】列表分页处理和插件JSTree的使用
May 12 Javascript
浅谈JavaScript 浏览器对象
Jun 03 Javascript
Bootstrap风格的WPF样式
Dec 07 Javascript
RequireJS 依赖关系的实例(推荐)
Jan 21 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 COOKIE设置为浏览器进程
2009/06/21 PHP
PHP中字符与字节的区别及字符串与字节转换示例
2016/10/15 PHP
PHP切割汉字的常用方法实例总结
2019/04/27 PHP
Yii框架多语言站点配置方法分析【中文/英文切换站点】
2020/04/07 PHP
B/S开发中常用javaScript技术与代码
2007/03/09 Javascript
js实例属性和原型属性示例详解
2014/11/23 Javascript
javascript比较两个日期的先后示例代码
2014/12/31 Javascript
深入理解JavaScript系列(33):设计模式之策略模式详解
2015/03/03 Javascript
JavaScript判断图片是否已经加载完毕的方法汇总
2016/02/05 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(二)
2017/01/21 Javascript
jQuery点击头像上传并预览图片
2017/02/23 Javascript
Vue制作Todo List网页
2017/04/26 Javascript
微信小程序之绑定点击事件实例详解
2017/07/07 Javascript
Vue的轮播图组件实现方法
2018/03/03 Javascript
Angular2实现的秒表及改良版示例
2019/05/10 Javascript
JavaScript简易计算器制作
2020/01/17 Javascript
JavaScript实现网页tab栏效果制作
2020/11/20 Javascript
python中定义结构体的方法
2013/03/04 Python
理解Python中的With语句
2015/02/02 Python
Python的Bottle框架的一些使用技巧介绍
2015/04/08 Python
Linux RedHat下安装Python2.7开发环境
2017/05/20 Python
Pandas 按索引合并数据集的方法
2018/11/15 Python
pytorch 模拟关系拟合——回归实例
2020/01/14 Python
Python爬取新型冠状病毒“谣言”新闻进行数据分析
2020/02/16 Python
git查看、创建、删除、本地、远程分支方法详解
2020/02/18 Python
网购亚洲时装、美容产品和生活百货:YesStyle
2016/09/15 全球购物
Bealls Florida百货商店:生活服饰、家居装饰和鞋子
2018/02/23 全球购物
美国小蜜蜂Burt’s Bees德国官网:天然唇部、皮肤和身体护理产品
2020/06/14 全球购物
电气工程及其自动化自我评价四篇
2013/09/24 职场文书
高校师德师风自我剖析材料
2014/09/29 职场文书
2015年留守儿童工作总结
2015/05/22 职场文书
歌舞青春观后感
2015/06/10 职场文书
大队委员竞选稿
2015/11/20 职场文书
实例详解Python的进程,线程和协程
2022/03/13 Python
Nginx实现会话保持的两种方式
2022/03/18 Servers
讲解Python实例练习逆序输出字符串
2022/05/06 Python