Javascript循环删除数组中元素的3种方法
本文主要跟大家分享了关于Javascript循环删除数组中元素的几种方法,分享出来供大家参考学习,下面与微点阅读小编一起来看看详细的介绍:
问题
大家在码代码的过程中,经常会遇到在循环中移除指定元素的需求。按照常规的思路,直接一个for循环,然后在循环里面来个if判断,在判断中删除掉指定元素即可。但是实际情况往往不会像预想的那样顺利运行。
下面以一段Javascript代码为例演示这一过程。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
运行结果如下:
从最终的结果可以看到实际上只删除掉了匹配的其中一个元素,而另外一个元素还存在。
从打印出的运行过程不难发现,原因为当删除掉了一个元素后,数组的索引发生的变化,造成了程序的异常。
解决方法
找到了问题的原因,就不难解决问题了。
方法一
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
上面的代码看起来不大好理解,有没有看起来更易于理解的代码呢?
请看下面
方法二
1 2 3 4 5 6 7 8 9 10 11 12 |
|
从后往前遍历可以有效解决问题,也容易理解,那么还有没有跟简洁的实现呢?
接着看下面代码
方法三
1 2 3 4 5 6 7 8 9 10 11 |
|
使用while(i--)
,i为数组下标,个人觉得这是最简洁、高效的代码实现了。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助。
来源:https://www.weidianyuedu.com
Javascript循环删除数组中元素的3种方法相关推荐
- [转]在python中删除list中元素的3种方法:remove、pop、del
info = ["du", 18, "男", "矮穷丑", ["高", "富", "帅&q ...
- Java中使用for循环删除数组中某个元素,并按原有顺序打印
package com.ty.demo; //使用for循环删除数组中的某个元素,并按照原有顺序打印出来 public class Demo03 { public static void main(S ...
- javascript比较删除数组头元素的不同方法的效率
javascript比较删除数组头元素的不同方法的效率 Array.prototype.shift() 删除并返回数组的第一个元素 我搜索的实现是,创建一个新数组,然后对从i=1开始,对新数组的i-1 ...
- java 数组减除值_java – 删除数组中空值的最有效方法是什么.
我很好奇删除数组中空值的最有效方法是什么.这是我当前的null(0)删除方法. public static int[] removeNull(int[] array){ int j = 0; for( ...
- Jquery取得iframe中元素的几种方法Javascript Jquery获取Iframe的元素、内容或者ID,反之也行!...
query取得iframe中元素的几种方法 在iframe子页面获取父页面元素 代码如下: $('#objId', parent.document); // 搞定... 在父页面 获取iframe子页 ...
- 图解|查找数组中最大值的5种方法!
作者 | 王磊 来源 | Java中文社群(ID:javacn666) 转载请联系授权(微信ID:GG_Stone) 我们在一些特定场景下,例如查询公司员工的最高薪资,以及班级的最高成绩又或者是面试中 ...
- 解析Jquery取得iframe中元素的几种方法
iframe在复合文档中经常用到,利用jquery操作iframe可以大幅提高效率,这里收集一些基本操作,需要的朋友可以参考下 DOM方法:父窗口操作IFRAME:window.frames[&quo ...
- Jquery取得iframe中元素的几种方法(转载)
Jquery取得iframe中元素的几种方法(转载) iframe在复合文档中经常用到,利用jquery操作iframe可以大幅提高效率,这里收集一些基本操作 DOM方法: 父窗口操作IFRAME: ...
- php js动态删除数组元素,javascript如何删除数组中的指定元素
js删除数组中的指定元素主要分为两步,首先判断数组中是否包含这个元素,然后再通过splice()方法来删除指定元素 本篇文章主要介绍的是如何通过javascript语言对数组中的指定元素进行删除的方法 ...
最新文章
- 详细说说Transformer (超详细图解,一图胜千言)
- 陈一舟:在中国当企业家要有承受能力 失败了大家会看你笑话
- LTE轻松进阶之帧结构
- JAVA总结之数组篇
- api key for Alpha Vantage
- spring boot+mybatis 多数据源切换
- html链接外部css样式表,CSS外部样式表是什么?
- 控制反转IOC与依赖注入DI
- POJ 3080 Blue Jeans (后缀数组)
- JPG,动态GIF,BMP一些常用解决办法
- VS2008 vs2010中JQUERY智能提醒
- ideal如何快速导入import_【MAC版】pr预设安装目录?pr如何快速批量导入lut
- Markdown案例
- firstchild.data与childNodes[0].nodeValue意思(转)
- VXLAN配置实例(四)——VXLAN多租户网络隔离
- SmartSVN 14 for Mac(多平台SVN客户端)
- 黑马程序员——农夫过河问题
- 多元函数的泰勒展开Talor以及黑塞矩阵
- 仪器校准证书和检定证书分别具有什么作用?区别是什么?
- js 获取当天23点59分59秒 时间戳 (最简单的方法)