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 相关文章推荐
js 有框架页面跳转(target)三种情况下的应用
Apr 09 Javascript
js的hasownproperty使用示例
Mar 02 Javascript
JavaScript将字符串转换成字符编码列表的方法
Mar 19 Javascript
javascript中setInterval的用法
Jul 19 Javascript
深入浅析同源策略和跨域访问
Nov 26 Javascript
jQuery实现移动端滑块拖动选择数字效果
Dec 24 Javascript
JavaScript修改作用域外变量的方法
Mar 25 Javascript
JS中对象与字符串的互相转换详解
May 20 Javascript
JS获取并处理php数组的方法实例分析
Sep 04 Javascript
小程序rich-text组件如何改变内部img图片样式的方法
May 22 Javascript
javascript异步处理与Jquery deferred对象用法总结
Jun 04 jQuery
JS实现简单日历特效
Jan 03 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/06/13 PHP
Codeigniter上传图片出现“You did not select a file to upload”错误解决办法
2014/06/12 PHP
Dwz与thinkphp整合下的数据导出到Excel实例
2014/12/04 PHP
PHP多态代码实例
2015/06/26 PHP
php实现的一段简单概率相关代码
2016/05/30 PHP
详解Yii2 定制表单输入字段的标签和样式
2017/01/04 PHP
Yii2.0中使用js异步删除示例
2017/03/10 PHP
PHP使用PDO 连接与连接管理操作实例分析
2020/04/21 PHP
js实现运行代码需要刷新的解决方法
2007/08/18 Javascript
JavaScript中的作用域链和闭包
2012/06/30 Javascript
网页整体变灰白色(兼容各浏览器)实例
2013/04/21 Javascript
浅析JS动态创建元素【两种方法】
2016/04/20 Javascript
Javascript基础_嵌入图像的简单实现
2016/06/14 Javascript
js微信分享API
2020/10/11 Javascript
解决OneThink中无法异步提交kindeditor文本框中修改后的内容方法
2017/05/05 Javascript
微信小程序 搜索框组件代码实例
2019/09/06 Javascript
搭建Vue从Vue-cli到router路由护卫的实现
2019/11/14 Javascript
node.js中module模块的功能理解与用法实例分析
2020/02/14 Javascript
jQuery实现放大镜案例
2020/10/19 jQuery
Node快速切换版本、版本回退(降级)、版本更新(升级)
2021/01/07 Javascript
JavaScript WeakMap使用详解
2021/02/05 Javascript
python实现模拟按键,自动翻页看u17漫画
2015/03/17 Python
Python实现字典的key和values的交换
2015/08/04 Python
python getopt详解及简单实例
2016/12/30 Python
Python使用matplotlib的pie函数绘制饼状图功能示例
2018/01/08 Python
Python基于Tkinter模块实现的弹球小游戏
2018/12/27 Python
python GUI库图形界面开发之PyQt5中QMainWindow, QWidget以及QDialog的区别和选择
2020/02/26 Python
详解Python模块化编程与装饰器
2021/01/16 Python
webView加载html图片遇到的问题解决
2019/10/08 HTML / CSS
奢华时尚的创新平台:Baltini
2020/10/03 全球购物
环境工程大学生自荐信
2013/10/21 职场文书
出售房屋委托书范本
2014/09/24 职场文书
乡镇遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
毕业生实习期转正自我鉴定
2014/09/26 职场文书
超市采购员岗位职责
2015/04/07 职场文书
java设计模式--建造者模式详解
2021/07/21 Java/Android