Javascript数组没有正确排序

时间:2014-09-03 13:18:55

标签: javascript arrays sorting

这个数组排序有什么问题?

var arr = ["Q1#2013#A", "Q1#2013#B", "Q1#2014#A", "Q1#2014#B", "Q2#2013#A", "Q2#2013#B", "Q2#2014#A", "Q2#2014#B", "Q3#2013#A", "Q3#2013#B", "Q4#2013#A", "Q4#2013#B"];
arr.sort(function(a, b) {
  var s = a.split('#'), t = b.split('#');
  var c = s.pop(), d = t.pop();
  s1 = s.reverse().join('#')+'#'+c, s2 = t.reverse().join('#')+'#'+d;
  return s1 > s2;
});

返回以下输出:

["Q2#2014#A", "Q1#2013#A", "Q1#2013#B", "Q2#2013#A", "Q2#2013#B", "Q3#2013#A", "Q3#2013#B", "Q4#2013#A", "Q4#2013#B", "Q1#2014#A", "Q1#2014#B", "Q2#2014#B"]

理想的结果应该是:

["Q1#2013#A", "Q1#2013#B", "Q2#2013#A", "Q2#2013#B", "Q3#2013#A", "Q3#2013#B", "Q4#2013#A", "Q4#2013#B", "Q1#2014#A", "Q1#2014#B", "Q2#2014#A", "Q2#2014#B"]

0 个答案:

没有答案