vue里面如何让按钮每次点击不同的地方数组循环一次?

vue项目里面每点击一次按钮,需要将点击的数据与数组进行对比,查出相同项并赋值给另一个数组,但我发现第一次点击是可以筛选出多个相同项的,但第二次第三次点击就没有筛选,发现是数组没有循环,请问哪个地方写错了嘛?

  onMenuItemClick(data){
        console.log(data,"117行")
        this.showLeftDataFlag = true;
      
        let arr =[];
        for(var a=0;a<this.rightData.length;a++){
            console.log(this.rightData[a].proId,data,"this.rightData[i].proId")
           if(data==this.rightData[a].proId){
                 arr.push(this.rightData[a]);
                 break;
           }
        }
        console.log(this.rightData,"点击左侧之后的rightData");
    },
阅读 1.6k
1 个回答

看起来好像没啥问题,你可以debug看看是哪一部出了问题。其实查询有更方便的方法

  onMenuItemClick(data){
        console.log(data,"117行")
        this.showLeftDataFlag = true;
        // 只有一个可使用原生的数组find方法,找到则为该元素,否则为null
        let arr = this.rightData.reduce((res,v) => {
         if(v.proId == data) res.push(v);
         return res;
        }, []);
        console.log(this.rightData,"点击左侧之后的rightData");
    },
已参与了 SegmentFault 思否「问答」打卡,欢迎正在阅读的你也加入。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题