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 に答える