繁体   English   中英

如何在Mulitple Sort中使用自定义排序方法

[英]How to use a custom sort method with Mulitple Sort

我正在使用具有多重排序扩展名的Bootstrap表 我有一列具有指数值的列,例如2 x 10-8、1 x 10-7、4 x 10-6,并编写了自定义排序方法来对这些值进行排序。 通过将sorter: "pValueSorter"设置为以下方式,该方法可以在使用“ single”排序时对列进行排序:

$('#table').bootstrapTable({
        exportDataType: 'all',
        filterControl: true,
        columns: [{
            field: 'pValue',
            title: 'P-value',
            sortable: true,
            sorter: "pValueSorter",
            filterControl: 'input'
        }
        ...

然后该方法为:

function pValueSorter(a, b) {
    sort method here
    ...
}

使用MultiplSort扩展时,如果此列包含在排序中,是否可以使用此自定义方法?

不能通过获得您的专栏

function pValueSorter(a, b) {
    a.children[colNum]
    b.children[colNum]
    ...
}

如果从0开始?

2016年的这篇文章解释了如何在排序函数中对多个列进行排序。

基本上,如果第一个检查返回0 ,它是false,它将处理下一个检查,依此类推:

 var data = []; (function () { var names = ["Logan", "Bub", "Scott", "That-guy"]; while (data.length < Math.pow(names.length, 2)) { data.push({ age: Math.ceil(Math.random() * names.length), name: names[Math.floor(Math.random() * names.length)] }); } })(); function multiSortData(a, b) { return b.name.localeCompare(a.name) || a.age - b.age; } function displayData(data) { var table = document.createElement("table"); table.innerHTML = "<tr><td>Name</td><td>Age</td></tr>"; table.border = "true"; data.forEach(function (data) { var tr = table.appendChild(document.createElement("tr")); tr.appendChild(document.createElement("td")).textContent = data.name; tr.appendChild(document.createElement("td")).textContent = data.age; }); table.style.cssText = "background-color: #eee;margin: 1em;border: 1 solid;"; document.body.appendChild(table); } //TEST displayData(data); displayData(data.sort(multiSortData)); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM