博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
遍历中的数组删除数据问题
阅读量:4705 次
发布时间:2019-06-10

本文共 877 字,大约阅读时间需要 2 分钟。

  今天开发jqgrid需要有单行删除功能和所有选中删除功能,在进行所有选中删除功能开发时最简单的代码却总是跑不通。

  其实心中早已预料到,肯定是自己写了一些把自己绕进去的代码,因为这几行就是一个简单的循环。

  找出这段自己绕自己的代码,这勾起了我巨大的兴趣,因为肯定有编程的细节我忽略了,在关键时刻,这些细节可能是致命的。

1 if("basMgmtGridIdGrid" == rowid) {2     var ids = jqgrid.jqGrid('getGridParam', 'selarrrow');3     for(var i = 0; i < ids.length; i++) {4         jqgrid.delRowData(ids[i]);5     }6 } else {                7     jqgrid.delRowData(rowid);8 }

  前端显示有两个选中的行,触发删除所有选中行时之删除了一行。

  原来数组的length属性是动态变化的,删除了一行,length就减1,但i还是执行i++了,结果不满足下一次循环的条件了

  修改代码

1 if("basMgmtGridIdGrid" == rowid) {2     var ids = jqgrid.jqGrid('getGridParam', 'selarrrow');3     while(ids.length > 0) {4         jqgrid.delRowData(ids[0]);5     }6 } else {                7     jqgrid.delRowData(rowid);8 }

  联想扩展:做为一个Java程序员,一下就想到了java中的集合,list、set、map的length()也是动态的。其实这些基本的知识自己都学过,但是就是不出错记不住啊。

转载于:https://www.cnblogs.com/guanghe/p/9554376.html

你可能感兴趣的文章
对以内部 git 仓库为 composer 依赖的 package,加上版本号
查看>>
新生力量之我见
查看>>
一致性hash算法实现
查看>>
简化日常工作系列之一 ---- 自动新建每日记录
查看>>
【信号、图像、Matlab】如何得到高斯滤波器的整数模板
查看>>
[转]Vi 教程(Unix行编辑器)
查看>>
第4周小组作业:WordCount优化
查看>>
布隆过滤去重,及分布式爬虫配置
查看>>
Redis 持久化
查看>>
struts2源码分析之流程
查看>>
青蛙跳
查看>>
数据类型、操作符
查看>>
Linux查看软件安装路径
查看>>
「luogu2486」[SDOI2011] 染色
查看>>
Java设计模式之享元模式
查看>>
win7怎么显示隐藏文件夹
查看>>
★身体给你9次防癌的机会,别再“喂养”癌细胞了!
查看>>
Servlet 生命周期
查看>>
python实现域名解析和归属地查询
查看>>
利用expect验证主机口令
查看>>