Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 多维数组排序在IE中不起作用_Javascript_Sorting - Fatal编程技术网

Javascript 多维数组排序在IE中不起作用

Javascript 多维数组排序在IE中不起作用,javascript,sorting,Javascript,Sorting,我有一个使用JavaScript对多维数组进行排序的函数。它在Firefox和GoogleChrome中都能很好地工作,但在IE中一点也不工作。是否有一些我不遵守的跨浏览器兼容性编码标准 function sortArray(arr, column, order) { var asc = function sortAsc(a, b) { return (a[column] > b[column]); } var desc = function sortDesc(a, b) {

我有一个使用JavaScript对多维数组进行排序的函数。它在Firefox和GoogleChrome中都能很好地工作,但在IE中一点也不工作。是否有一些我不遵守的跨浏览器兼容性编码标准

function sortArray(arr, column, order) {

var asc = function sortAsc(a, b) {
    return (a[column] > b[column]);
}

var desc = function sortDesc(a, b) {
    return (a[column] < b[column]);
}

if (order=="desc")
{
    return arr.sort(desc);
}

return arr.sort(asc);
}
函数排序(arr、列、顺序){
var asc=函数排序C(a,b){
返回(a[列]>b[列]);
}
var desc=功能sortDesc(a,b){
返回(a[列]
一个调用的示例是:“Sortaray(雇员,'name','desc')”


任何关于如何在IE中修复此问题的想法都会很有帮助,这样它就不会一直返回原始数组。有什么想法吗?谢谢

您正在利用一种非标准的方式来实现比较,因此它只适用于某些浏览器

如果项目相等,则比较应返回零;如果项目不相等,则比较应返回正值或负值:

function asc(a, b) {
  return (a[column] == b[column] ? 0 : a[column] < b[column] ? -1 : 1);
}

function desc(a, b) {
  return asc(b, a);
}
功能asc(a、b){
返回(a[列]==b[列]?0:a[列]
Guffa有您的答案,您可能想阅读的相关部分以及内容。还要注意的是,仅仅使用函数声明要好得多。事实上,他涵盖了答案并阐明了我的问题。谢谢你给我指一些关于它的技术性阅读。