js数组删除对应下标数组bug

Posted 野猪佩奇007

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js数组删除对应下标数组bug相关的知识,希望对你有一定的参考价值。

项目场景:

表格选择删除对应数组如下:


问题描述:

提示:一开始按照另一个数组的下标来作为删除条件,但是达到的效果就是数据数组删除后改变了length,也改变了下标,导致如果删除三个,只有两个删掉了,中间那个因为数据删除,往前移了一个位置导致他变成了下标0的数据但是循环已经到了1这里,就会出错漏掉

@Override
       for (let index = 0; index < this.arr2.length; index++) 
          this.arr1[this.arr2[index]].splice(index,1)
        

解决方案:

循环的时候给arr1里添加一个值,用来标识是否删除,之后在循环arr1本身,删除一个i–一次再判断删除,就可以避免隔过去

for (let index = 0; index < this.arr2.length; index++) 
          this.arr1[this.arr2[index]].isdel = false;
        
        for (let i = 0; i < this.arr1.length; i++) 
            if(this.arr1[i].isdel==false)
              this.arr1.splice(i,1)
              i--
            
        

以上是关于js数组删除对应下标数组bug的主要内容,如果未能解决你的问题,请参考以下文章

js数组删除指定下标元素

PHP数组中,如何查询所有等于指定值得元素下标?

JS查找数组指定元素

MATLAB中查找数组中的非零元素用啥函数

js通过值获取数组对象对应下标

如何将两个数组的元素建立起对应关系