浅谈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 相关文章推荐
Javascript浅谈之this
Dec 17 Javascript
javascript获取浏览器类型和版本的方法(js获取浏览器版本)
Mar 13 Javascript
JavaScript使用位运算符判断奇数和偶数的方法
Jun 01 Javascript
详解JS异步加载的三种方式
Mar 07 Javascript
微信小程序中子页面向父页面传值实例详解
Mar 20 Javascript
angularjs实现对表单输入改变的监控(ng-change和watch两种方式)
Aug 29 Javascript
JS实现可针对算术表达式求值的计算器功能示例
Sep 04 Javascript
对vue中v-on绑定自定事件的实例讲解
Sep 06 Javascript
微信小程序进入广告实现代码实例
Sep 19 Javascript
Vue调用后端java接口的实例代码
Oct 28 Javascript
Vue实现剪贴板复制功能
Dec 31 Javascript
JavaScript编码小技巧分享
Sep 17 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 mysql操作mysql_connect连接数据库实例详解
2016/12/26 PHP
PHP使用Redis长连接的方法详解
2018/02/12 PHP
Javascript+XMLHttpRequest+asp.net无刷新读取数据库数据
2009/08/09 Javascript
JavaScript DOM 学习第七章 表单的扩展
2010/02/19 Javascript
JQuery 常用操作代码
2010/03/14 Javascript
使用VS开发 Node.js指南
2015/01/06 Javascript
JS实现点击按钮控制Div变宽、增高及调整背景色的方法
2015/08/05 Javascript
JavaScript实现的原生态Tab标签页功能【兼容IE6】
2017/09/18 Javascript
mescroll.js上拉加载下拉刷新组件使用详解
2017/11/13 Javascript
Javascript实现购物车功能的详细代码
2018/05/08 Javascript
vue插件mescroll.js实现移动端上拉加载和下拉刷新
2019/03/07 Javascript
javascript中数组的常用算法深入分析
2019/03/12 Javascript
JavaScript判断浏览器运行环境的详细方法
2019/06/30 Javascript
如何在Vue项目中添加接口监听遮罩
2021/01/25 Vue.js
[06:44]2018DOTA2亚洲邀请赛4.5 SOLO赛 MidOne vs Sumail
2018/04/06 DOTA
Python BeautifulSoup中文乱码问题的2种解决方法
2014/04/22 Python
Python编程之属性和方法实例详解
2015/05/19 Python
python实现稀疏矩阵示例代码
2017/06/09 Python
Python基于whois模块简单识别网站域名及所有者的方法
2018/04/23 Python
解决pyqt5中QToolButton无法使用的问题
2019/06/21 Python
使用python实现学生信息管理系统
2021/02/25 Python
利用三角函数在canvas上画虚线的方法
2018/01/11 HTML / CSS
h5移动端调用支付宝、微信支付的实现
2020/06/08 HTML / CSS
Aerosoles爱柔仕官网:美国舒软女鞋品牌
2017/07/17 全球购物
娇韵诗法国官网:Clarins法国
2019/01/29 全球购物
Interflora澳大利亚:同日鲜花速递
2019/06/25 全球购物
在数据文件自动增长时,自动增长是否会阻塞对文件的更新
2014/05/01 面试题
活动邀请函范文
2014/01/19 职场文书
恶搞卫生巾广告词
2014/03/18 职场文书
党支部承诺书范文
2014/03/28 职场文书
《悯农》教学反思
2014/04/28 职场文书
信息管理专业自荐书
2014/06/05 职场文书
绘画专业自荐信
2014/07/04 职场文书
技术经济专业求职信
2014/09/03 职场文书
党员学习中共十八大思想报告
2014/09/12 职场文书
html+css实现环绕倒影加载特效
2021/07/07 HTML / CSS