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

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

 开始时处理更新的问题是直接拿取所有数据进行提交,没有更新的数据也提交了导致效率大大折扣,后来是只提交修改过的数据和新建的数据进行提交,因为最后提交的是一个数组,新建的数据还好,更新的数据会导致重复添加到数组,即使遍历数组进行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,删除之前编辑过并且存储在数组里的数据,把再次更新的这条数据插入数组

猜你喜欢

转载自blog.csdn.net/weixin_41916005/article/details/82894177
今日推荐