浅谈js数组splice删除某个元素爬坑


Posted in Javascript onOctober 14, 2020

先来看下几个概念:

// splice:返回从原始数组中删除的项(如果没有任何删除,则返回空数组)
    // 当指定2个参数时,表示删除
    // 当指定3个参数,且第2个参数为0时表示插入
    // 当指定3个参数,且第2个参数为1时表示替换

本次就拿删除举例,本身我们想删除数组中的某个指定元素,我们需要知道它所在数组中的下标,我们可以用 数组.indexOf获取它所在的下标,然后拿splice删除这个元素。

本身是没问题

代码如下:

var arr = ["张三","李四","王五","赵六"];

// 删除王五
arr.splice(arr.indexOf("王五"),1);

但是。。。。。问题就来了。

如果放到for循环中,比如循环数组,当某个条件成立的时候,我们需要删除某个指定的元素。

但是循环中,i每次都是+1的,但是我们删除某个元素后,下标就变了,相应的位置发生变化,i的值加一后,就会跳过下一个元素。

坑啊。。。

所以,在删除某个元素的时候,我们手动把 i的值再减一,这样就会避免出现跳过某个元素的问题。

例如:循环数组,当 DasOperation  属性值等于 没变 的时候,从数组中删除这条数据,然后i-1

// 删除没有变化的,不传递到后台
for (let i = 0; i < this.CurrJobData.Content.length; i += 1) {
  if (this.CurrJobData.Content[i].DasOperation === '没变') {
    this.CurrJobData.Content.splice(this.CurrJobData.Content.indexOf(this.CurrJobData.Content[i]), 1);
    i -= 1;// 必须对i减去1,否则后面的一个元素会被跳过去
  }
}

好了,为避免更多小伙伴遇坑,贴出来,希望有帮助。

 到此这篇关于浅谈js数组splice删除某个元素爬坑的文章就介绍到这了,更多相关js splice删除某个元素内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
JQuery EasyUI 数字格式化处理示例
May 05 Javascript
JQuery选择器、过滤器大整理
May 26 Javascript
JavaScript中的slice()方法使用详解
Jun 06 Javascript
JavaScript面向对象程序设计教程
Mar 29 Javascript
基于BootStrap Metronic开发框架经验小结【九】实现Web页面内容的打印预览和保存操作
May 12 Javascript
Javascript基础学习笔记(菜鸟必看篇)
Jul 22 Javascript
jQuery获取与设置iframe高度的方法
Aug 01 Javascript
jQuery内容筛选选择器实例代码
Feb 06 Javascript
手把手教你用Node.js爬虫爬取网站数据的方法
Jul 05 Javascript
浅谈js闭包理解
Apr 01 Javascript
利用JS如何获取form表单数据
Dec 19 Javascript
javascript 易错知识点实例小结
Apr 25 Javascript
如何使用JS console.log()技巧提高工作效率
Oct 14 #Javascript
JavaScript Blob对象原理及用法详解
Oct 14 #Javascript
基于javascript原生判断DOM是否加载完毕
Oct 14 #Javascript
JavaScript常用进制转换及位运算实例解析
Oct 14 #Javascript
Vue实现鼠标经过文字显示悬浮框效果的示例代码
Oct 14 #Javascript
JavaScript本地储存:localStorage、sessionStorage、cookie的使用
Oct 13 #Javascript
原生JS实现相邻月份日历
Oct 13 #Javascript
You might like
PHP实现用户认证及管理完全源码
2007/03/11 PHP
解决163/sohu/sina不能够收到PHP MAIL函数发出邮件的问题
2009/03/13 PHP
从Web查询数据库之PHP与MySQL篇
2009/09/25 PHP
PHP反射使用实例和PHP反射API的中文说明
2014/07/02 PHP
php使用Jpgraph绘制3D饼状图的方法
2015/06/10 PHP
Zend Framework教程之Application和Bootstrap用法详解
2016/03/10 PHP
Zend Framework开发入门经典教程
2016/03/23 PHP
PHP弱类型的安全问题详细总结
2016/09/25 PHP
PHP底层运行机制与工作原理详解
2020/07/31 PHP
用javascript实现计算两个日期的间隔天数
2007/08/14 Javascript
javascript贪吃蛇完整版(源码)
2013/12/09 Javascript
js操作IE浏览器弹出浏览文件夹可以返回目录路径
2014/07/14 Javascript
BootStrap中的Fontawesome 图标
2017/05/25 Javascript
JS设计模式之观察者模式实现实时改变页面中金额数的方法
2018/02/05 Javascript
vue实现重置表单信息为空的方法
2018/09/29 Javascript
实现Vue的markdown文档可以在线运行的方法示例
2018/12/11 Javascript
Bootstrap4 gulp 配置详解
2019/01/06 Javascript
vue-cli设置css不生效的解决方法
2020/02/07 Javascript
js实现盒子移动动画效果
2020/08/09 Javascript
[43:51]2018DOTA2亚洲邀请赛3月30日 小组赛B组 EG VS Secret
2018/03/31 DOTA
恢复百度云盘本地误删的文件脚本(简单方法)
2017/10/21 Python
python的exec、eval使用分析
2017/12/11 Python
详解Django-auth-ldap 配置方法
2018/12/10 Python
使用Python防止SQL注入攻击的实现示例
2020/05/21 Python
Python 中 sorted 如何自定义比较逻辑
2021/02/02 Python
美国特价机票专家:Airfarewatchdog
2018/01/24 全球购物
UML设计模式笔试题
2014/06/07 面试题
英文版银行求职信
2013/10/09 职场文书
解除合同协议书
2014/04/17 职场文书
文艺晚会策划方案
2014/06/11 职场文书
2014年世界艾滋病日演讲稿
2014/11/28 职场文书
2014离婚协议书范文(3篇)
2014/11/29 职场文书
老公写给老婆的检讨书
2015/05/06 职场文书
学校百日安全活动总结
2015/05/07 职场文书
初一年级组工作总结
2015/08/12 职场文书
只需要12页,掌握撰写一流商业计划书的技巧
2019/05/07 职场文书