[英]javascript library that can sort table with scientific notation
我正在为表使用javascript类排序表(请参见此处: http ://www.kryogenix.org/code/browser/sorttable/)
但是,我有一个使用科学计数法的表。 当我对列进行排序时,它看起来像这样...
9.43947E-20
9.41332E-22
9.36423E-22
9.35113E-18
9.2744E-23
9.18754E-22
9.09174
8.3981E-22
7.72743E-19
7.69538E-18
7.23656E-19
排序不正确。 我希望它看起来像这样...
9.09174
9.35113E-18
7.69538E-18
7.72743E-19
7.23656E-19
9.43947E-20
9.41332E-22
9.36423E-22
8.3981E-22
9.2744E-23
有没有可以执行此操作的javascript函数? 谢谢。
上面的代码可以使用我的sorTable库工作(目前恰好也在背面使用jQuery):
他们的关键是使用*1
或parseFloat
而不是parseInt
将字符串值转换为数字。
var myArrayOfNumbersAsStrings.sort(function(a,b){
if(parseFloat(a) < parseFloat(b)) return -1;
if(parseFloat(a) > parseFloat(b)) return 1;
return 0;
});
尝试这个:
numbers.sort(function(a, b) {
return Number(a) - Number(b);
}); // => The array "numbers" is now sorted numerically ascending.
您希望它们按最大到最小的顺序排序-
var A= [
'9.43947E-20',
'9.41332E-22',
'9.36423E-22',
'9.35113E-18',
'9.2744E-23',
'9.18754E-22',
'9.09174',
'8.3981E-22',
'7.72743E-19',
'7.69538E-18',
'7.23656E-19'
];
A.sort(function(a, b){
return b-a;
}).join('\n')
/* returned value: (String)
9.09174
9.35113E-18
7.69538E-18
7.72743E-19
7.23656E-19
9.43947E-20
9.41332E-22
9.36423E-22
9.18754E-22
8.3981E-22
9.2744E-23
*/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.