首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在表排序中对“人”数字进行排序

在表排序中对“人”数字进行排序
EN

Stack Overflow用户
提问于 2014-10-03 10:03:14
回答 1查看 113关注 0票数 2

我使用tablesorter对一组值进行排序,这些值的格式从710,2316.39 million37.3 million5.3 million等等都有所不同。目前,插件排序只是简单地忽略million,否则排序很好,但结果是你得到了类似于`530万,639万,3730万,710,231,

EN

回答 1

Stack Overflow用户

发布于 2014-10-03 11:28:47

您需要添加一个解析器来将名称替换为它们的值(demo):

代码语言:javascript
复制
// see big list here: http://www.unc.edu/~rowlett/units/large.html
var numbers = {
    'zero'        : 0,
    'hundred'     : 100,
    'thousand'    : 1e3,
    'million'     : 1e6,
    'billion'     : 1e9,
    'trillion'    : 1e12,
    'quadrillion' : 1e15,
    'quintillion' : 1e18,
    'sextillion'  : 1e21,
    'septillion'  : 1e24,
    'octillion'   : 1e27,
    'nonillion'   : 1e30,
    'decillion'   : 1e33
};

$.tablesorter.addParser({
    id: "namedNumbers",
    is: function () {
        return false;
    },
    format: function (s, table) {
        var v,
            result = 1,
            arry = (s || '').split(/[\-\s]+/),
            len = arry.length;
        while (len) {
            v = $.tablesorter.formatFloat( (arry[--len] || '').toLowerCase(), table );
            if ( numbers.hasOwnProperty(v) ) {
                result *= numbers[v];
            } else {
                result *= parseFloat(v);
            }
        }
        return result !== 1 ? result : s;
    },
    type: "numeric"
});

$(function () {
    $('table').tablesorter({
        theme: 'blue',
        headers : {
            1 : { sorter : 'namedNumbers' }
        }
    });
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26172283

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档