如何通过复杂的规则对表进行排序

时间:2014-03-04 16:38:24

标签: javascript sorting

我有一张这样的表:

a-1/1    1.1
a-2/3    2.3
a-1/3    1.3
a-10/1   10.1
a-10/2   10.2
a-2/1    2.1
a-1/2    1.2
a-2/2    2.2
..

我需要将其分类为:

a-1/1    1.1
a-1/2    1.2
a-1/3    1.3
a-2/1    2.1
a-2/2    2.2
a-2/3    2.3
..
a-10/1   10.1
a-10/2   10.2
a-10/3   10.3

在这种情况下艰难的事情:

  1. 我正在整理一张桌子

  2. 我在表中使用部分而不是值本身对表进行排序。

1 个答案:

答案 0 :(得分:2)

var data =
['a-1/1    1.1',
 'a-2/3    2.3',
 'a-1/3    1.3',
 'a-10/1   10.1',
 'a-10/2   10.2',
 'a-2/1    2.1',
 'a-1/2    1.2',
 'a-2/2    2.2'];

data.sort(function (f, s) {
    var one = parseFloat(f.split(/\s+/)[1]), two = parseFloat(s.split(/\s+/)[1]);
    return one === two ? 0 : one > two ? 1 : -1;
});

console.log(data);

<强>输出

[ 'a-1/1    1.1',
  'a-1/2    1.2',
  'a-1/3    1.3',
  'a-2/1    2.1',
  'a-2/2    2.2',
  'a-2/3    2.3',
  'a-10/1   10.1',
  'a-10/2   10.2' ]