js push值重复遍历

直接上代码,是这样的

this.permissionData.forEach(element => {
        element.permissionId.forEach(ele => {
          ele = ele.split(",");
          let arr = [];
          for (let i in ele) {
            arr[i] = ele[i];
            console.log(arr[i]);
            this.permissionele.push(arr[i]);
            console.log(this.permissionele);
          }
        });
      });

这样得到数据是这样

clipboard.png
但是我反选的时候,就要重新把指赋值到arr里面,比如我增加一个就成这样

clipboard.png

我只要传进来的新值,前面的都不要,还有就是反选的时候,就相当于去掉一个,但还是把前面的值也传过来了,请问怎么解决??

阅读 4.2k
2 个回答

this.permissionele 这个是在循环外定义的,所以每次都只会操作这个数组push新值,你可以在循环内新建一个变量来接这个值就行

this.permissionele = [];
      this.permissionData.forEach(element => {
        element.permissionId.forEach(ele => {
          let ar = [];
          ar = ele.split(",");
          let arr = [];
          for (let i in ar) {
            arr[i] = ar[i];
            this.permissionele.push(arr[i]);
          }
        });
      });
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题