重复数据去重达到以下效果

      // 处理表格数据

        const formatTableData = (dataArr) => {

            const seenIds = new Set(); // 用来记录已经出现过的baseId

            // 处理重复id 并且将id设置为空

            state.processedTableData = dataArr.map(item => {

                if (seenIds.has(item.baseId)) {

                return { ...item, baseId: '' }; // 如果baseId已经出现过,将baseId设为null
                } else {
                    seenIds.add(item.baseId); // 添加baseId到seenIds集合中

                }
                return item;
            });

            // 去重 重复id的整条数据

            // state.processedTableData = dataArr.filter(item => {
            //     if (!seenIds.has(item.baseId)) {
            //         seenIds.add(item.baseId)
            //         return true
            //     }
            //     return false;
            // });

       对象写法(1.返回去重后的数据,2.返回处理后的id数据)

1.const formatTableData = (dataArr) => {
const seenIds = {}; // 使用对象来记录已经出现过的baseId
state.processedTableData = dataArr.filter((item, index, arr) => {
if (!seenIds[item.baseId]) {
seenIds[item.baseId] = true; // 标记baseId已出现
return true; // 首次出现,保留该元素
}
return false; // baseId已出现,过滤掉此元素
});
}

2.const formatTableData = (dataArr) => {
const seenIds = {}; // 使用对象来记录已经出现过的baseId
state.processedTableData = dataArr.map((item, index, arr) => {
if (seenIds[item.baseId]) {
// 如果baseId已出现过,将baseId设为空字符串
return { ...item, baseId: '' };
} else {
// 首次出现,记录baseId,并保留该元素
seenIds[item.baseId] = true;
return item;
}
});
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值