在 jQuery DataTable 中查找数组索引的行索引

Find row index for array index in jQuery DataTable

我正在使用 jQuery DataTables 来显示分页 table。我现在想跳转到包含特定行的页面(使用当前 filter/sort 设置)。如果我知道行的索引,我可以很容易地用 tbl.fnPageChange( Math.floor(rowi / tbl.fnSettings()._iDisplayLength) );.

之类的东西来做到这一点

但是,我只知道 数据对象 在数据数组中的索引(由 tbl.fnGetData() 返回)。

有没有简单的方法可以根据这个数据索引得到行索引?与 fnGetPosition() 几乎相反?

更新:我根据循环遍历 aiDisplay 数组一起破解了一些东西:

function find_display_index(dataTable, data_index) {
    var oSettings = dataTable.fnSettings();
    var row_index = -1;
    for(var j = 0; j < oSettings.aiDisplay.length; j++) {
        if(oSettings.aiDisplay[j] == data_index) {
            row_index = j;
            break;
        }
    }
    return row_index;
}

不确定这是否是最好的(甚至是完全正确的)方法,但它似乎有效!