处理新建与更新数据重复添加问题

  最近公司有个项目需要做一个配码表类似下图

 开始时处理更新的问题是直接拿取所有数据进行提交,没有更新的数据也提交了导致效率大大折扣,后来是只提交修改过的数据和新建的数据进行提交,因为最后提交的是一个数组,新建的数据还好,更新的数据会导致重复添加到数组,即使遍历数组进行if和else判断,if里面判断是否存在数据id进行特定处理是没有问题的但是在else里面也会随着遍历添加一些没用的数据

  解决方法

  

                var rows=[]
                var index = -1;
                for (var i = 0; i < rows.length; i++) {
                    debugger
                    if (a[i].ID ==ID) {
                        index = i;
                        break;
                    }
                }
                if (index != -1) {
                    rows.splice(index, 1);
                }
                arr1.push({
                   ID:ID,
                   eadId: HeadId,
                   SizeGroupId: SizeGroupId,
                   SizeGroupName: SizeGroupName,
                   TargetPortName: TargetPortName,
                   Number: Number,
                   CollocationType: CollocationType,
                   TotalNumber: TotalNumber,
                })

定义一个数组和一个Number类型变量,遍历这个数组,如果是刚开始添加或编辑数据,这时候数组的长度是0直接跳过遍历push添加数据进去,如果不是长度不是0则遍历数组看ID是否存在,如果存在说明之前已经添加过或者编辑过这条数据,则拿到下标存到index,删除之前编辑过并且存储在数组里的数据,把再次更新的这条数据插入数组

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值