博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
循环删除数组中的某几项
阅读量:4886 次
发布时间:2019-06-11

本文共 660 字,大约阅读时间需要 2 分钟。

在码代码的过程中,经常会遇到在循环中移除指定元素的需求。按照常规的思路,直接一个for循环,然后在循环里面来个if判断,在判断中删除掉指定元素即可。但是实际情况往往不会像预想的那样顺利运行。

下面以一段Javascript代码为例演示这一过程。

let arr = [1, 2, 3, 4, 5];let len = arr.length;for(let i=0; i

从最终的结果可以看到实际上只删除掉了匹配的其中一个元素,而另外一个元素还存在。

从打印出的运行过程不难发现,原因为当删除掉了一个元素后,数组的索引发生的变化,造成了程序的异常。

解决方法
方法一

let arr = [1, 2, 3, 4, 5];let len = arr.length;for(let i=0; i

方法二

let arr = [1, 2, 3, 4, 5];let len = arr.length;for(let i=len; i>=0; i--) {   if (arr[i]==2) {    arr.splice(i, 1);  }}

从后往前遍历可以有效解决问题

方法三

let arr = [1, 2, 3, 4, 5];let i= arr.length;while(i--) {  if (arr[i]==2) {    arr.splice(i, 1);  }}

使用while(i--) ,i为数组下标

转载于:https://www.cnblogs.com/memphis-f/p/9294733.html

你可能感兴趣的文章
hdu 1896 优先队列的应用
查看>>
OpenGL 头文件,库文件
查看>>
点与不规则图形关系判断
查看>>
iOS 自定义控件--重写一些方法
查看>>
第二次冲刺作业
查看>>
【转】HTML, CSS和Javascript调试入门
查看>>
蓝桥历年试题 套娃
查看>>
微信支付体验
查看>>
Thinkphp 3.2笔记
查看>>
RHEL7开机不能正常进入系统(图形化界面)
查看>>
Android开发环境搭建完全图解
查看>>
详解BOM头以及去掉BOM头的方法
查看>>
PHP 手机浏览器访问网站获取手机相关信息方法集锦
查看>>
09年电子竞赛参赛技巧经验11条(转载)
查看>>
CSS颜色
查看>>
Unity 摄像头竖屏预览显示的问题
查看>>
HDU 5115 Dire Wolf(区间dp)
查看>>
C# 程序配置文件的操作(ConfigurationManager的使用)
查看>>
Springmvc完成分页的功能
查看>>
JComboBox实现当前所选项功能和JFrame窗口释放资源的dispose()方法
查看>>