0

我有一个使用 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 中可能解决此问题的想法,以便它不会继续返回原始数组都会有所帮助。有任何想法吗?谢谢!

4

1 回答 1

1

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

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

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

function desc(a, b) {
  return asc(b, a);
}
于 2013-01-19T07:04:46.463 回答