浅谈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 设计模式 富有表现力的Javascript(一)
May 26 Javascript
JQUERY设置IFRAME的SRC值的代码
Nov 30 Javascript
javascript 数组操作详解
Jan 29 Javascript
浅析javascript中的DOM
Mar 01 Javascript
JavaScript使用Replace进行字符串替换的方法
Apr 14 Javascript
JS日期加减,日期运算代码
Nov 05 Javascript
jquery 多个radio的click事件实例
Dec 03 Javascript
基于JavaScript实现拖动滑块效果
Feb 16 Javascript
ES6新特性之类(Class)和继承(Extends)相关概念与用法分析
May 24 Javascript
Vue.js学习记录之在元素与template中使用v-if指令实例
Jun 27 Javascript
Vue动态控制input的disabled属性的方法
Jun 26 Javascript
解决layui数据表格table的横向滚动条显示问题
Sep 04 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 开发的 8 个技巧
2006/10/09 PHP
PHP开发中常用的字符串操作函数
2011/02/08 PHP
PHP常用文件操作函数和简单实例分析
2016/06/03 PHP
基于laravel缓冲cache的用法详解
2019/10/23 PHP
Thinkphp 框架扩展之行为扩展原理与实现方法分析
2020/04/23 PHP
js传值 判断
2006/10/26 Javascript
Auntion-TableSort国人写的一个javascript表格排序的东西
2007/11/12 Javascript
Js setInterval与setTimeout(定时执行与循环执行)的代码(可以传入参数)
2010/06/11 Javascript
JS+flash实现chrome和ie浏览器下同时可以复制粘贴
2013/09/22 Javascript
js实现简单的星级选择器提交效果适用于评论等
2013/10/18 Javascript
javascript比较两个日期相差天数的方法
2015/07/24 Javascript
Linux CentOS系统下安装node.js与express的方法
2017/04/01 Javascript
VueJS组件之间通过props交互及验证的方式
2017/09/04 Javascript
EL表达式截取字符串的函数说明
2017/09/22 Javascript
js屏蔽退格键(backspace或者叫后退键与F5)
2019/02/10 Javascript
微信小程序实现图片压缩
2019/12/03 Javascript
如何使用three.js 制作一个三维的推箱子游戏
2020/07/29 Javascript
vue图片裁剪插件vue-cropper使用方法详解
2020/12/16 Vue.js
解决Python中由于logging模块误用导致的内存泄露
2015/04/23 Python
python学习 流程控制语句详解
2016/06/01 Python
python中import reload __import__的区别详解
2017/10/16 Python
详解Python如何生成词云的方法
2018/06/01 Python
解决python中画图时x,y轴名称出现中文乱码的问题
2019/01/29 Python
Python魔法方法功能与用法简介
2019/04/04 Python
超实用的 30 段 Python 案例
2019/10/10 Python
如何使用python自带IDLE的几种方法
2020/10/10 Python
python mock测试的示例
2020/10/19 Python
一文带你了解Python 四种常见基础爬虫方法介绍
2020/12/04 Python
css3中transition属性详解
2014/09/02 HTML / CSS
美国精油公司:Plant Therapy
2019/05/17 全球购物
资源环境与城市管理专业推荐信
2013/11/30 职场文书
大三学生入党思想汇报
2014/01/02 职场文书
理财投资建议书
2014/03/12 职场文书
纪念九一八事变演讲稿:忘记意味着背叛
2014/09/14 职场文书
顶岗实习计划书
2015/01/16 职场文书
python 安全地删除列表元素的方法
2022/03/16 Python