先来看下几个概念:
// 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删除某个元素内容请搜索小牛知识库以前的文章或继续浏览下面的相关文章希望大家以后多多支持小牛知识库!
本文向大家介绍浅谈js数组和splice的用法,包括了浅谈js数组和splice的用法的使用技巧和注意事项,需要的朋友参考一下 首先添加一个splice函数: splice:该方法的作用就是从数组中删除一个元素 array.splice(index,count,value....); index:表示从哪一个下标开始, count:表示删除元素的个数 value:代表增加的元素 example:
问题内容: 是什么使用之间的差值的delete算子阵列元件上,而不是使用该Array.splice方法? 例如: 如果我可以像删除对象一样删除数组元素,为什么还要使用splice方法呢? 问题答案: 将删除对象属性,但不会为数组重新索引或更新其长度。这使得它看起来好像是未定义的: 请注意,实际上并没有将其设置为value ,而是从数组中删除了该属性,使其 显得 未定义。Chrome开发人员工具通过
本文向大家介绍浅谈使用splice函数对数组中的元素进行删除时的注意事项,包括了浅谈使用splice函数对数组中的元素进行删除时的注意事项的使用技巧和注意事项,需要的朋友参考一下 使用splice函数对数组中的元素进行删除时的注意事项 删除值为c的元素: 注意:如果用for(i in arr)的话,后面的一个元素始终会跳过去 以上这篇浅谈使用splice函数对数组中的元素进行删除时的注意事项就是小
本文向大家介绍Javascript删除数组里的某个元素,包括了Javascript删除数组里的某个元素的使用技巧和注意事项,需要的朋友参考一下 删除数组中的某个元素,首先需要确定需要删除元素的索引值。 找到相对应的索引值后,根据索引值删除数组中该元素对应的值 验证下,是否成功 需要将封装为数组原始的方法,以便以后需要使用 当然根据数组的splice()方法:向/从数组中添加/删除项目,然后返回被删
如上图片, 每个方块都有一个宽,高,X轴,Y轴; 有可能宽占多份, 高占多份; 但宽度最大就占3份, 高度不限; 每次删除一个格子, 下面的格子自动往左往上补齐; 给到数据假如是: 删除id为5的格子后,希望得到的是:
传入:{ text: "子目录一", id: 880 } 期望输出: 传入:{ text: "根目录", id: 9521 } 期望输出: