jquery.datatablesを使用して、datatables 列に数値を表示しています。数値は、1000 単位の間にスペースを入れるようにフォーマットされます ( のように123 456 789
)。残念ながら、この数値の書式設定は、数値の並べ替えではなく文字列の並べ替えを引き起こします(この質問の最後のスクリーンショットを参照してください)。
私は次のことを確認しました。
function _fnSort(oSettings, bApplyClasses) {
ソートのコア関数です。- この関数では、動的関数ソートアプローチが使用されます (
if (!window.runtime) {
true の場合に実行されるもの) 。 使用する文字列ソート関数は、次の 2 つの関数です。
/* * text sorting */ "string-asc": function(a, b) { var x = a.toLowerCase(); var y = b.toLowerCase(); return ((x < y) ? -1 : ((x > y) ? 1 : 0)); }, "string-desc": function(a, b) { var x = a.toLowerCase(); var y = b.toLowerCase(); return ((x < y) ? 1 : ((x > y) ? -1 : 0)); },
JavaScript に関する私の知識はかなり貧弱です。ここで最善のアプローチは何でしょうか?
- 文字列の並べ替え関数を微調整して、数千の書式設定されたケースを検出し、比較を行います (大規模なデータ セットでは、これはかなり遅くなると思います)。
- 何千ものフォーマット専用の数値ソート機能を提供しますか? その場合
- それをどのようにコーディングしますか?
- この特別な数値ソート機能を使用するために、コアのソート機能にどのように指示できますか?
並べ替えは次のようになります。