JCAT 2009-05-03 10:18
浏览 186
已采纳

复选框选择模型中,删除多列时遍历Record数组的问题

为了在grid的复选框选择模型中删除选中的多行记录,的代码如下:

var records = _grid.getSelectionModel().getSelections();//得到选中的多行,返回值为Record数组

[color=red]//for (var i in records) { //为什么用这种方式遍历会出错呢???[/color]for (var i=0; i<records.length;i++){
//调用DWR方法删除数据
UserService.delUser(records.data);
}

之前用for (var i in records)对Record数组进行遍历出错了,检查以后发现这种遍历records除了取出Record对象外,最后还会取出个remove方法,所以传入DWR就出错了,后来改为for (var i=0; i<records.length;i++)遍历就正常了,请问这是什么原理呢?谁能详细说说

[b]问题补充:[/b]
哦?相当于Ext扩展了数组的功能,在里面加入了remove方法对吧?

那这两种遍历有什么区别吗?我JavaScript基础差,以为是一样的
for (var i=0; i<records.length;i++){
for (var i in records) {

这种能正常运行
for (var i=0; i<records.length;i++){
UserService.delUser(records[i].data);
}

这种报错,firebug发现遍历时i不是record对象而是数组的index值
for (var i in records){
UserService.delUser(i.data);
}

于是改成这种:记录可以正常删除了,但最后会传入个remove方法导致出错
for (var i in records){
UserService.delUser(records[i].data);
}

  • 写回答

3条回答 默认 最新

  • zhoujuan520 2009-05-03 10:27
    关注

    这个是Ext里面 Array的扩展代码
    [code="js"]
    /**

    • @class Array
      /
      Ext.applyIf(Array.prototype, {
      /
      *

      • Checks whether or not the specified object exists in the array.
      • @param {Object} o The object to check for
      • @return {Number} The index of o in the array (or -1 if it is not found) */ indexOf : function(o){ for (var i = 0, len = this.length; i < len; i++){ if(this[i] == o) return i; } return -1; },

      /**

      • Removes the specified object from the array. If the object is not found nothing happens.
      • @param {Object} o The object to remove
      • @return {Array} this array */ remove : function(o){ var index = this.indexOf(o); if(index != -1){ this.splice(index, 1); } return this; } }); [/code]
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试,帮帮忙吧
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建