浅谈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 相关文章推荐
将函数的实际参数转换成数组的方法
Jan 25 Javascript
30个让人兴奋的视差滚动(Parallax Scrolling)效果网站
Mar 04 Javascript
js获取触发事件元素在整个网页中的绝对坐标(示例代码)
Dec 13 Javascript
无限树Jquery插件zTree的常用功能特性总结
Sep 11 Javascript
JavaScript定时显示广告代码分享
Mar 02 Javascript
探讨JavaScript标签位置的存放与功能有无关系
Jan 15 Javascript
第一次接触神奇的Bootstrap表单
Jul 27 Javascript
jQuery Easyui快速入门教程
Aug 21 Javascript
Angularjs修改密码的实例代码
May 26 Javascript
JavaScript满天星导航栏实现方法
Mar 08 Javascript
mockjs+vue页面直接展示数据的方法
Dec 19 Javascript
ES11屡试不爽的新特性,你用上了几个
Oct 21 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
Apache 配置详解(最好的APACHE配置教程)
2010/07/04 PHP
laravel 数据迁移与 Eloquent ORM的实现方法
2019/04/12 PHP
php使用gearman进行任务分发操作实例详解
2020/02/26 PHP
js小技巧--自动隐藏红叉叉
2007/08/13 Javascript
Jquery 实现Tab效果 思路是js思路
2010/03/02 Javascript
jquery链式操作的正确使用方法
2014/01/06 Javascript
js常用自定义公共函数汇总
2014/01/15 Javascript
jquery中ajax函数执行顺序问题之如何设置同步
2014/02/28 Javascript
JavaScript中的比较操作符&gt;、=、
2014/12/31 Javascript
原生JavaScript实现Ajax的方法
2016/04/07 Javascript
Nodejs从有门道无门菜鸟起飞必看教程
2016/07/20 NodeJs
详解XMLHttpRequest(二)响应属性、二进制数据、监测上传下载进度
2016/09/14 Javascript
详解jQuery插件开发方式
2016/11/22 Javascript
jQuery实现立体式数字动态增加(animate方法)
2016/12/21 Javascript
js手机号4位显示空格,银行卡每4位显示空格效果
2017/03/23 Javascript
JavaScrpt中如何使用 cookie 设置查看与删除功能
2017/07/09 Javascript
JS轮播图实现简单代码
2021/02/19 Javascript
ES6解构赋值的功能与用途实例分析
2017/10/31 Javascript
JS获取动态添加元素的方法详解
2019/07/31 Javascript
Element-ui upload上传文件限制的解决方法
2021/01/22 Javascript
Python管理Windows服务小脚本
2018/03/12 Python
pytorch获取vgg16-feature层输出的例子
2019/08/20 Python
keras的三种模型实现与区别说明
2020/07/03 Python
python定义具名元组实例操作
2021/02/28 Python
CSS3弹性盒模型开发笔记(二)
2016/04/26 HTML / CSS
全球性的在线鞋类品牌:Public Desire
2019/04/03 全球购物
德国家用电器购物网站:Premiumshop24
2019/08/22 全球购物
英国No.1体育用品零售商:SportsDirect.com
2019/10/16 全球购物
外语系毕业生自荐信范文
2013/12/16 职场文书
对标管理实施方案
2014/03/12 职场文书
总经理助理的职责
2014/03/14 职场文书
项目合作意向书范本
2014/04/01 职场文书
师德承诺书2015
2015/04/28 职场文书
Django 如何实现文件上传下载
2021/04/08 Python
如何用JS实现简单的数据监听
2021/05/06 Javascript
Python语言中的数据类型-序列
2022/02/24 Python