排序在IE中不起作用

时间:2016-04-05 09:05:57

标签: javascript arrays sorting internet-explorer

我用 var a1 = new Array;  a1.sort(...)

问题是: 它们是多列。如果我按特定列排序,它工作正常。但 有没有办法对内部列值进行排序

说我们对col1进行排序并且排序正确

但col2未按col1的相同值排序。在Firefox和Chrome中,它运行良好。

  col1  col2  
1     5
1     4 
2     3
2     2
2     6
3     7

预期结果     第2栏

col1  col2  
1     4
1     5 
2     2
2     3
2     6
3     7

1 个答案:

答案 0 :(得分:0)

如果第一列相等,则需要对两列进行排序,然后按第二列排序。

如果没有可用的回调,

Array#sort()按字符串排序。

  

<强>的compareFunction
  可选的。指定定义排序顺序的函数。如果省略,则根据每个元素的Unicode代码点值对数组进行排序,具体取决于每个元素的字符串转换。

var array = [[2, 6], [3, 7], [1, 5], [1, 4], [2, 3], [2, 2]];

array.sort(function (a, b) {
    return a[0] - b[0] || a[1] - b[1];
});

document.write('<pre>' + JSON.stringify(array, 0, 4) + '</pre>');