element-plus使用表格的多选,获取表格的选中数据和未选中数据?

image.png这个表格,默认是有选中数据的
现在需要在修改表格的选中状态,获取未选中的数据和选中的数据,形成两个新的数组

const handleSelectionChange = (val: User) => {
  // multipleSelection.value = val
  let arr: any[] = [] // 选中的数据,这个可以获取到
  let arr1:any[] = [] // 未选中的数据,这个获取不到,逻辑写的有问题
  val.forEach((item: { id: any; }) => {
    arr.push(item.id)
  })
  arr.forEach((value) => {
    val.map((item: { id: any; }) => {
      console.log(item.id);
      if(value.id !== item.id) {
        arr1.push(value.id)
      }
    })
  })
  console.log(arr);
  console.log(arr1);
}

是根据官方提供的改变事件获取选中的数据,未选中的数据,如何获取,麻烦指正一下

阅读 3.8k
2 个回答
totalArr就是所有数据(选中的和未选中的)

把这块替换掉
image.png

let arr1 = totalArr.filter(v => !arr.includes(v.id)).map(v => v.id)

其实就是循环一下表格数据,判断一下是否勾选就好了。

// 表格数据
const tableData: User[] = [...]
const handleSelectionChange = (val: User[]) => {
  const selectIds = val.map(item => item.id)
  const selectItemList = val
  const unselectItemList = tableData.filter(item= >! selectIds.includes(item.id))
  console.log('选中的数据', selectItemList);
  console.log('未选中的数据', unselectItemList);
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题