收藏
回答

array 的遍历删除

问题模块
API和组件

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 了一份了 !!

最后一次编辑于  2017-06-29  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏关注问题回答

3 个回答

  • 赵青山
    赵青山
    2017-06-29

    光看这些看不出来

    2017-06-29
    赞同
    回复
  • 硕子
    硕子
    2017-06-30
    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--

    2017-06-30
    赞同
    回复
  • 王宁宁
    王宁宁
    2017-07-03

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

    2017-07-03
    赞同
    回复