javascript - 在 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];
解决方案
你可以使用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);
推荐阅读
- python - 在python中将数组加入数据框
- javascript - 在 Transfer 组件的两边都有一个树结构
- angular - 简单的控制值访问器
- angular - 如何正确使用角度路由?
- php - 将具有不同标题的excel文件上传到数据库
- android - Glide 无法加载某些图像失败并出现异常
- java - 当引用特定版本的 Glassfish JAXB 时,Buildship Java 启动配置缺少 JAR
- python - 调用类没有运行方法
- swift - 在集合视图单元格选择上更改表格视图单元格内容
- android - 调整 Android Speech-to-text 识别中的背景噪音敏感度