首页 > 解决方案 > 在 DataTables API 中排序之前格式化数字

问题描述

我在 DataTables 中有一个列,其中包含一些金额,它们的格式类似于 1,200.00,我想获得该列的最大金额。为了做到这一点,我使用下面的代码,如果我在列中有 22.50、250.00 和 1,200.00,它假设给我 1,200.00 作为最大数量,但它会带回 250.00 作为最大数量.

var maxPrice = table
        .column(2)
        .data()
        .sort(function(a,b){
            return a - b 
        })
        .reverse()[0];

标签: javascriptjquerydatatables

解决方案


你可以使用datatable api,toArray()方法。

然后使用 JS 或 jquery 解析数字并排序。

还使用extractContent()函数来获取文本而不是 html。

        /**
        * Get Max Price
        */
        function extractContent(s) {
          var span = document.createElement('span');
          span.innerHTML = s;
          return span.textContent || span.innerText;
        };
        
        var PriceArray = [];
        $( table.column(2).data().toArray() ).each(function( index ) {
            PriceArray.push(extractContent(this).replace(',',''));
        });
        var maxPrice = PriceArray.sort(function(a,b){return a-b}).reverse()[0];
        console.log(maxPrice);

推荐阅读