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 动态调整图片尺寸实现代码
Dec 28 Javascript
javascript 设计模式之单体模式 面向对象学习基础
Apr 18 Javascript
javascript中的toFixed固定小数位数 简单实例分享
Jul 12 Javascript
Js实现双击鼠标自动滚动屏幕的示例代码
Dec 14 Javascript
使用Javascript写的2048小游戏
Nov 25 Javascript
动态加载js、css的简单实现代码
May 26 Javascript
jquery实现简单的瀑布流布局
Dec 11 Javascript
Radio 单选JS动态添加的选项onchange事件无效的解决方法
Dec 12 Javascript
JS实现的四级密码强度检测功能示例
May 11 Javascript
vue实现todolist功能、todolist组件拆分及todolist的删除功能
Apr 11 Javascript
详解Vue组件之间通信的七种方式
Apr 14 Javascript
pm2发布node配置文件ecosystem.json详解
May 15 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中并发读写文件冲突的解决方案
2013/10/25 PHP
phpExcel中文帮助手册之常用功能指南
2014/08/18 PHP
详解PHP处理密码的几种方式
2016/11/30 PHP
php模拟实现斗地主发牌
2020/04/22 PHP
JavaScript高级程序设计 阅读笔记(七) ECMAScript中的语句
2012/02/27 Javascript
网站繁简切换的JS遇到页面卡死的解决方法
2014/03/12 Javascript
JavaScript中通过prototype属性共享属性和方法的技巧实例
2015/03/13 Javascript
javascript+HTML5的canvas实现七夕情人节3D玫瑰花效果代码
2015/08/04 Javascript
JavaScript编写页面半透明遮罩效果的简单示例
2016/05/09 Javascript
深入理解js generator数据类型
2016/08/16 Javascript
微信小程序 闭包写法详细介绍
2016/12/14 Javascript
javascript判断回文数详解及实现代码
2017/02/03 Javascript
jQuery实现导航栏头部菜单项点击后变换颜色的方法
2017/07/19 jQuery
详解.vue文件中style标签的几个标识符
2018/07/17 Javascript
angular 实时监听input框value值的变化触发函数方法
2018/08/31 Javascript
浅谈Vue 性能优化之深挖数组
2018/12/11 Javascript
React性能优化系列之减少props改变的实现方法
2019/01/17 Javascript
Openlayers实现地图全屏显示
2020/09/28 Javascript
[01:35:53]完美世界DOTA2联赛PWL S3 Magma vs GXR 第二场 12.13
2020/12/17 DOTA
Python实现数据库编程方法详解
2015/06/09 Python
基于python实现在excel中读取与生成随机数写入excel中
2018/01/04 Python
关于matplotlib-legend 位置属性 loc 使用说明
2020/05/16 Python
HTML5通过调用canvas对象的getContext()方法来获取绘图环境
2014/06/23 HTML / CSS
韩国知名的家庭购物网站:CJmall
2016/08/01 全球购物
美国校服网上商店:French Toast
2019/10/08 全球购物
系统管理员的职责包括那些?管理的对象是什么?
2016/09/20 面试题
临床医师专业个人自我评价范文
2013/11/07 职场文书
大学生求职推荐信
2013/11/27 职场文书
校友会欢迎辞
2014/01/13 职场文书
商业房地产广告语
2014/03/13 职场文书
2014党的群众路线教育实践活动学习心得体会
2014/10/31 职场文书
2016新教师培训心得体会范文
2016/01/08 职场文书
用python自动生成日历
2021/04/24 Python
浅谈JavaScript浅拷贝和深拷贝
2021/11/07 Javascript
CSS SandBox应用场景及常见问题
2022/06/25 HTML / CSS
tree shaking对打包体积优化及作用
2022/07/07 Java/Android