Javascript表排序工作得很好,但对所有索引进行迭代会得到不同的结果

Javascript table sort works well but iterating over all indexes gives different results

本文关键字:迭代 结果 索引 工作 排序 很好 Javascript      更新时间:2023-09-26

我有一个表,我正在使用以下函数进行排序:

function ReorderSupplyGP(table){
  table.find('tr:not(.kn-table_summary)').sort(function (a, b) {
    var tda = $(a).find('td:eq(1)').text().trim();
    var tdb = $(b).find('td:eq(1)').text().trim();
    var sales = {
       "Purchase": 0, "Transfer": 1, "Returns": 2, "Adjustment": 3, "Inventory": 4
    };
    tda = sales[tda];
    tdb = sales[tdb]; 
    // if a < b return 1
    return tda > tdb ? 1
    // else if a > b return -1
    : tda < tdb ? -1
    // else they are equal - return 0    
    : 0;
  }).prependTo(table);

}

它工作得很好,但当我使用功能打印所有行时

for(x=1;x<tablebodyrow.length;x++)
  {
    console.log(tablebodyrow.eq(x));
  }

这看起来就像是对行进行了可视化排序,但它们的索引从未更改。有办法解决这个问题吗。

这正是您正在做的:

1) 用某个集合X中的值填充某个html表2) 然后获得html表,从其行中读取值,并对html表的行进行重新排序3) 你不会在任何地方重新订购基础收藏

解决方案:1) 重新排序初始集合并重新渲染表2) 在您现有的函数中重新排序集合,而不仅仅是html表