0

テーブルに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関数はありますか?ありがとう。

4

4 に答える 4

2

上記は私のsorTableライブラリを使用して機能します(これは現在、背面でjQueryも使用しています):

デモ: http: //jsfiddle.net/bBJBa/1/

*1それらの重要な点は、。のようなまたはparseFloat代わりに何かを使用して文字列値を数値に変換することですparseInt

于 2012-05-11T18:36:44.107 に答える
1
var myArrayOfNumbersAsStrings.sort(function(a,b){
    if(parseFloat(a) < parseFloat(b)) return -1;
    if(parseFloat(a) > parseFloat(b)) return 1;
    return 0;
});
于 2012-05-11T18:37:47.067 に答える
1

これを試して:

numbers.sort(function(a, b) {
  return Number(a) - Number(b);
}); // => The array "numbers" is now sorted numerically ascending.
于 2012-05-11T18:40:46.420 に答える
0

あなたはそれらを最大から最小にソートしたい-

   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
    */
于 2012-05-11T18:59:29.523 に答える