zoukankan      html  css  js  c++  java
  • 遍历中的数组删除数据问题

      今天开发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()也是动态的。其实这些基本的知识自己都学过,但是就是不出错记不住啊。

  • 相关阅读:
    475. Heaters
    69. Sqrt(x)
    83. Remove Duplicates from Sorted List Java solutions
    206. Reverse Linked List java solutions
    100. Same Tree Java Solutions
    1. Two Sum Java Solutions
    9. Palindrome Number Java Solutions
    112. Path Sum Java Solutin
    190. Reverse Bits Java Solutin
    202. Happy Number Java Solutin
  • 原文地址:https://www.cnblogs.com/guanghe/p/9554376.html
Copyright © 2011-2022 走看看