多维数组排序不工作在IE

Multi-dimensional array sort not working in IE

本文关键字:IE 工作 数组排序      更新时间:2023-09-26

我有一个使用JavaScript对多维数组排序的函数。它在Firefox和Google Chrome上都能很好地工作,但在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);
}

调用的一个例子是:"sortArray(employees, 'name', 'desc')"

关于在IE中修复此问题的任何想法,以便它不会一直返回原始数组将是有帮助的。什么好主意吗?谢谢!

你正在利用一种非标准的方式来实现比较,所以它只适用于某些浏览器。

如果两项相等,比较应该返回0,如果不相等,则返回正数或负数:

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