浅谈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 点击按钮弹出另一页,选择值后,返回到当前页
May 26 Javascript
25个好玩的JavaScript小游戏分享
Apr 22 Javascript
ajax处理php返回json数据的实例代码
Jan 24 Javascript
JQuery中attr方法和removeAttr方法用法实例
May 18 Javascript
cocos2dx骨骼动画Armature源码剖析(一)
Sep 08 Javascript
jQuery仅用3行代码实现的显示与隐藏功能完整实例
Oct 08 Javascript
浅谈node.js中async异步编程
Oct 22 Javascript
jQuery如何使用自动触发事件trigger
Nov 29 Javascript
JQuery组件基于Bootstrap的DropDownList(完整版)
Jul 05 Javascript
vue实现页面加载动画效果
Sep 19 Javascript
bootstrap 点击空白处popover弹出框隐藏实例
Jan 24 Javascript
详解如何从零开始搭建Express+Vue开发环境
Jul 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像数组一样存取和修改字符串字符
2014/03/21 PHP
利用php做服务器和web前端的界面进行交互
2016/10/31 PHP
Yii框架实现的验证码、登录及退出功能示例
2017/05/20 PHP
javascript 简单高效判断数据类型 系列函数 By shawl.qiu
2007/03/06 Javascript
JS事件Event元素(兼容IE,Firefox,Chorme)
2012/11/01 Javascript
在浏览器中实现图片粘贴的jQuery插件-- pasteimg使用指南
2014/12/29 Javascript
js时间戳格式化成日期格式的多种方法介绍
2017/02/16 Javascript
jquery.masonry瀑布流效果
2017/05/25 jQuery
浅谈js获取ModelAndView值的问题
2018/03/28 Javascript
Vue中使用vue-i18插件实现多语言切换功能
2018/04/25 Javascript
微信小程序中添加客服按钮contact-button功能
2018/04/27 Javascript
微信小程序实现左右联动的实战记录
2018/07/05 Javascript
Vue使用.sync 实现父子组件的双向绑定数据问题
2019/04/04 Javascript
vue实现的上拉加载更多数据/分页功能示例
2019/05/25 Javascript
JavaScript async/await原理及实例解析
2020/12/02 Javascript
linux服务器快速卸载安装node环境(简单上手)
2021/02/22 Javascript
[01:06]DOTA2隆重推出2016冬季勇士令状 内含上海特级锦标赛互动指南
2016/02/17 DOTA
Python中用startswith()函数判断字符串开头的教程
2015/04/07 Python
python嵌套函数使用外部函数变量的方法(Python2和Python3)
2016/01/31 Python
全面了解Python的getattr(),setattr(),delattr(),hasattr()
2016/06/14 Python
浅谈Python实现贪心算法与活动安排问题
2017/12/19 Python
Python完成哈夫曼树编码过程及原理详解
2019/07/29 Python
python multiprocessing多进程变量共享与加锁的实现
2019/10/02 Python
python Scrapy框架原理解析
2021/01/04 Python
html5 canvas绘制放射性渐变色效果
2018/01/04 HTML / CSS
StubHub墨西哥:购买和出售您的门票
2016/09/17 全球购物
Zooplus葡萄牙:欧洲领先的网上宠物商店
2018/07/01 全球购物
For Art’s Sake官网:手工制作的奢华眼镜
2018/12/15 全球购物
高一生物教学反思
2014/01/17 职场文书
反四风对照检查材料思想汇报
2014/09/16 职场文书
万能检讨书开头与结尾怎么写
2015/02/17 职场文书
音乐教师求职信范文
2015/03/20 职场文书
自我推荐信怎么写
2015/03/24 职场文书
2015年驾驶员工作总结
2015/04/29 职场文书
退货证明模板
2015/06/23 职场文书
2016暑期社会实践心得体会范文
2016/01/14 职场文书