array 的遍历删除
发布于 5 年前 作者 xiaxie 3143 次浏览 来自 问答

var likearrcopy =likearr;


var length = likearrcopy.length;


      for (var i = 0; i < length; i++) {
       
        if (likearrcopy[i].remark_id == e.target.dataset.ulike) {

          console.log("找到like");


         
          likearr.splice(i,1);
         
        }
 
 
      }

但删除一个后  报错   likearrcopy[i]  undefined  ,为什么会这样   likearr 已经copy 了一份了 !!

3 回复

Array 是引用类型,你复制的和原先的指向的是同一个数组。

var likearrcopy =likearr;
 
var length = likearrcopy.length;
 
      for (var i = 0; i < length; i++) {
        
        if (likearrcopy[i].remark_id == e.target.dataset.ulike) {
          console.log("找到like");
 
          

          likearr.splice(i,1);

         length--;

          
        }
  
  
      }

坑爹啊复制的 arr 没有用啊,删掉一个元素时也会变。。。 删掉一个元素后, 加了个 length–

光看这些看不出来

回到顶部