两个实现多选的逻辑求优化

    checked(e, index) {
      //e:当前状态false或true
      //index:当前索引

      //方法一:a为数组
      if (e) {
        //选中,就把b数组对应当前索引的数据赋给a数组
        this.a[index] = this.b[index]; 
      } else {
        //取消,就把a对应的数组位置设为空
        this.a[index] = undefined; 
      }
      //...最后整理出a数组里不为undefined的数据返回


      //方法二:a为对象
      if (e) {
        //选中,就把b数组对应当前索引的数据赋给a对象
        this.a[this.b[index].uid] = this.b[index]; 
      } else {
        //取消,直接删除对象属性
        delete this.a[this.b[index].uid]; 
      }
      //把对象数据整理成数组返回
    },
阅读 1.2k
1 个回答

可以考虑直接挂载到this.b数组

checked(e, index) {
      this.b[index].checked = e;
      return this.b.filter(({ checked }) => checked);
},
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题