浅谈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 相关文章推荐
用CSS+JS实现的进度条效果效果
Jun 05 Javascript
EasyUi tabs的高度与宽度根据IE窗口的变化自适应代码
Oct 26 Javascript
Javascript 判断是否存在函数的方法
Jan 03 Javascript
使用jquery实现放大镜效果
Sep 02 Javascript
jQuery团购倒计时特效实现方法
May 07 Javascript
浅析JavaScript 调试方法和技巧
Oct 22 Javascript
详解Vue 实例中的生命周期钩子
Mar 21 Javascript
AugularJS从入门到实践(必看篇)
Jul 10 Javascript
ES6解构赋值实例详解
Oct 31 Javascript
详解关于vue-area-linkage走过的坑
Jun 27 Javascript
element-ui的回调函数Events的用法详解
Oct 16 Javascript
微信小程序转化为uni-app项目的方法示例
May 22 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抓取页面与代码解析 推荐
2010/07/23 PHP
php中可能用来加密字符串的函数[base64_encode、urlencode、sha1]
2012/01/16 PHP
Youku 视频绝对地址获取的方法详解
2013/06/26 PHP
PHP+jQuery 注册模块的改进(三):更新到Smarty3.1
2014/10/14 PHP
基于PHP实现等比压缩图片大小
2016/03/04 PHP
php将html转为图片的实现方法
2017/05/19 PHP
laravel实现按时间日期进行分组统计方法示例
2019/03/23 PHP
PHP实现微信提现功能(微信商城)
2019/11/21 PHP
jQuery 白痴级入门教程
2009/11/11 Javascript
URL地址中的#符号使用说明
2011/02/12 Javascript
js获取URL的参数的方法(getQueryString)示例
2013/09/29 Javascript
JavaScript动态插入script的基本思路及实现函数
2013/11/11 Javascript
javascript写的一个模拟阅读小说的程序
2014/04/04 Javascript
Google官方支持的NodeJS访问API,提供后台登录授权
2014/07/29 NodeJs
javascript实现获取指定精度的上传文件的大小简单实例
2016/10/25 Javascript
值得学习的bootstrap fileinput文件上传工具
2016/11/08 Javascript
几种响应式文字详解
2017/05/19 Javascript
Python实现删除Android工程中的冗余字符串
2015/01/19 Python
Python实现将DOC文档转换为PDF的方法
2015/07/25 Python
python编写简单爬虫资料汇总
2016/03/22 Python
Python实现快速计算词频功能示例
2018/06/25 Python
Python文件读写常见用法总结
2019/02/22 Python
Python_查看sqlite3表结构,查询语句的示例代码
2019/07/17 Python
戴尔美国官网:Dell
2016/08/31 全球购物
华为俄罗斯官方网上商城:购买Huawei手机和平板
2017/04/21 全球购物
巴黎卡诗加拿大官网:Kérastase加拿大
2018/11/12 全球购物
澳大利亚儿童鞋在线:The Trybe
2019/07/16 全球购物
北欧最好的童装网上商店:Babyshop
2019/09/15 全球购物
业务员简历自我评价
2014/03/06 职场文书
婚前保证书
2014/04/29 职场文书
教师廉洁自律承诺书
2014/05/26 职场文书
义和团口号
2014/06/17 职场文书
大连导游词
2015/02/12 职场文书
2015年乡镇环保工作总结
2015/04/22 职场文书
安全生产警示教育活动总结
2015/05/09 职场文书
Golang 遍历二叉树
2022/04/19 Golang