浅谈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 流畅动画实现原理
Sep 08 Javascript
javascript简单性能问题及学习笔记
Feb 04 Javascript
jquery实现弹出div,始终显示在屏幕正中间的简单实例
Mar 08 Javascript
JS实现5秒钟自动封锁div层的方法
Feb 20 Javascript
jQuery在ul中显示某个li索引号的方法
Mar 17 Javascript
window.onload与$(document).ready()的区别分析
May 30 Javascript
全面了解构造函数继承关键apply call
Jul 26 Javascript
javascript构造函数以及原型对象的理解
Jan 13 Javascript
使用原生的javascript来实现轮播图
Feb 24 Javascript
Angular.js前台传list数组由后台spring MVC接收数组示例代码
Jul 31 Javascript
Angular angular-file-upload文件上传的示例代码
Aug 23 Javascript
《javascript设计模式》学习笔记四:Javascript面向对象程序设计链式调用实例分析
Apr 07 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聊天室实现方法(附源码)
2016/01/05 PHP
屏蔽PHP默认设置中的Notice警告的方法
2016/05/20 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
jquery cookie插件代码类
2009/05/26 Javascript
javascript 自定义事件初探
2009/08/21 Javascript
JAVASCRIPT style 中visibility和display之间的区别
2010/01/22 Javascript
基于jquery的二级联动菜单实现代码
2011/04/25 Javascript
基于jquery打造的百分比动态色彩条插件
2012/09/19 Javascript
Asp.Net alert弹出提示信息的几种方法总结
2014/01/29 Javascript
jQuery实现跟随鼠标运动图层效果的方法
2015/02/02 Javascript
Js实现无刷新删除内容
2015/04/29 Javascript
javascript框架设计之种子模块
2015/06/23 Javascript
js控制元素显示在屏幕固定位置及监听屏幕高度变化的方法
2015/08/11 Javascript
JS与jQ读取xml文件的方法
2015/12/08 Javascript
js字符串截取函数slice、substring和substr的比较
2016/05/17 Javascript
利用jQuery实现打字机字幕效果实例代码
2016/09/02 Javascript
jQuery分页插件jquery.pagination.js使用方法解析
2017/02/09 Javascript
jquery实现左右滑动式轮播图
2017/03/02 Javascript
angular4自定义组件详解
2017/09/28 Javascript
用jquery获取select标签中选中的option值及文本的示例
2018/01/25 jQuery
简单说说如何使用vue-router插件的方法
2019/04/08 Javascript
利用原生JavaScript实现造日历轮子实例代码
2019/05/08 Javascript
[02:08]DOTA2英雄基础教程 马格纳斯
2014/01/17 DOTA
windows上安装Anaconda和python的教程详解
2017/03/28 Python
详解python之多进程和进程池(Processing库)
2017/06/09 Python
numpy中索引和切片详解
2017/12/15 Python
对python遍历文件夹中的所有jpg文件的实例详解
2018/12/08 Python
python的依赖管理的实现
2019/05/14 Python
python分布式编程实现过程解析
2019/11/08 Python
css3设置box-pack和box-align让div里面的元素垂直居中
2014/09/01 HTML / CSS
计算机专业毕业生求职信分享
2013/12/24 职场文书
节约电力资源的建议书
2014/03/12 职场文书
电影建党伟业观后感
2015/06/01 职场文书
SQLServer2019 数据库的基本使用之图形化界面操作的实现
2021/04/08 SQL Server
webpack的移动端适配方案小结
2021/07/25 Javascript
OpenStack虚拟机快照和增量备份实现方法
2022/04/04 Servers