浅谈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 相关文章推荐
js优化针对IE6.0起作用(详细整理)
Dec 25 Javascript
js 获取计算后的样式写法及注意事项
Feb 25 Javascript
在Node.js中使用HTTP上传文件的方法
Jun 23 Javascript
微信+angularJS的SPA应用中用router进行页面跳转,jssdk校验失败问题解决
Sep 09 Javascript
小发现之浅谈location.search与location.hash的问题
Jun 23 Javascript
VUE元素的隐藏和显示(v-show指令)
Jun 23 Javascript
JavaScript简介_动力节点Java学院整理
Jun 26 Javascript
jquery ztree实现右键收藏功能
Nov 20 jQuery
详解ES6 系列之异步处理实战
Oct 26 Javascript
如何在JavaScript中优雅的提取循环内数据详解
Mar 04 Javascript
JavaScript原型式继承实现方法
Nov 06 Javascript
Vue实现按钮级权限方案
Nov 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
PHP isset()与empty()的使用区别详解
2010/08/29 PHP
php源码分析之DZX1.5加密解密函数authcode用法
2015/06/17 PHP
thinkphp实现163、QQ邮箱收发邮件的方法
2015/12/18 PHP
详解php几行代码实现CSV格式文件输出
2017/07/01 PHP
jQuery实现下滑菜单导航效果代码
2015/08/25 Javascript
使用堆实现Top K算法(JS实现)
2015/12/25 Javascript
javascript实现计时器的简单方法
2016/02/21 Javascript
JavaScript兼容浏览器FF/IE技巧
2016/08/14 Javascript
js运动事件函数详解
2016/10/21 Javascript
浅谈JavaScript异步编程
2017/01/20 Javascript
详解ElementUI之表单验证、数据绑定、路由跳转
2017/06/21 Javascript
详解Angular Reactive Form 表单验证
2017/07/06 Javascript
基于JS实现仿京东搜索栏随滑动透明度渐变效果
2017/07/10 Javascript
JS返回页面时自动回滚到历史浏览位置
2018/09/26 Javascript
Vue.js实现的购物车功能详解
2019/01/27 Javascript
Jquery 获取相同NAME 或者id删除行操作
2020/08/24 jQuery
React实现todolist功能
2020/12/28 Javascript
Python将list中的string批量转化成int/float的方法
2018/06/26 Python
PyCharm代码回滚,恢复历史版本的解决方法
2018/10/22 Python
对Python信号处理模块signal详解
2019/01/09 Python
Python PyCharm如何进行断点调试
2019/07/05 Python
Python matplotlib绘制图形实例(包括点,曲线,注释和箭头)
2020/04/17 Python
HTML5移动端手机网站开发流程
2016/04/25 HTML / CSS
Helly Hansen工作服美国官方网上商店:为最恶劣的环境
2019/09/04 全球购物
Ooni英国官网:披萨烤箱
2020/05/31 全球购物
幼教简历自我评价
2014/01/28 职场文书
药学职务聘任书
2014/03/29 职场文书
装饰施工员岗位职责
2015/04/11 职场文书
军训通讯稿范文
2015/07/18 职场文书
三十年同学聚会感言
2015/07/30 职场文书
2015年社区反邪教工作总结
2015/10/14 职场文书
2016年国庆节假期旅游工作总结
2016/04/01 职场文书
《初涉尘世》读后感3篇
2020/01/10 职场文书
Python实战之实现康威生命游戏
2021/04/26 Python
在项目中使用redis做缓存的一些思路
2021/09/14 Redis
Java存储没有重复元素的数组
2022/04/29 Java/Android