对象数组筛选出非选中的数据

文章介绍了在JavaScript中处理表格数据选中状态的方法。当用户选中表格数据并关闭后,再次打开时,上次选中的数据应被移除。通过使用map()和filter()函数,可以实现这一功能。map()函数用于遍历数组,every()函数判断选中数据是否与当前项匹配,filter()则用于筛选出不匹配的项,从而达到移除选中数据的效果。
摘要由CSDN通过智能技术生成

应用场景:

如下图,从表格中选中数据,点击确定。

当再次打开表格的时候,上一次选中的数据被移除,剩下非选中的数据。

实现之前对map,every,filter函数进行一定的了解

map():对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。

every():对数组中的每一项运行给定函数,如果该函数对每一项都返回 true,则返回 true。

filter():对数组中的每一项运行给定函数,返回该函数会返回 true 的项组成的数组。

实现方式一:

// tableData:原对象数组
// selectedRows: 选中的对象数组
const data = tableData.map((item) => {  // 这里用的是map
      if (selectedRows.every((v) => v.id !== item.id)) {
        return item;
      }
    });
console.log(data.filter(Boolean), "剩下的对象数组数据");  // 这里要进行非空的过滤

实现方式二:

// tableData:原对象数组
// selectedRows: 选中的对象数组
const _data = tableData.filter((item) => {  // 这里用的filter
      return selectedRows.every((v) => v.id !== item.id);
    });
console.log(_data, "剩下的对象数组数据");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值