複数の列による多次元配列の並べ替え
JavaScript では、Array.sort() 関数を使用して文字列の配列を簡単に並べ替えることができます。 。ただし、多次元配列の場合、または複数の条件に基づいて並べ替える場合は、カスタム関数が必要です。
次の構造を持つ配列を考えてみましょう:
[publicationID][publication_name][ownderID][owner_name]
目的は、配列を並べ替えることです。 owner_name ごとに、次に Publication_name ごとに、同じ名前の所有者がグループ化され、各グループ内のパブリケーションがアルファベット順に並べ替えられます。
以前は、配列を並べ替える mysortfunction という名前のカスタム 並べ替え関数が導入されていました。単一の列 owner_name に基づいています。この関数を複数列の並べ替え用に拡張するには、次の変更を加えることができます。
<code class="javascript">function mysortfunction(a, b) { var o1 = a[3].toLowerCase(); var o2 = b[3].toLowerCase(); var p1 = a[1].toLowerCase(); var p2 = b[1].toLowerCase(); if (o1 < o2) return -1; if (o1 > o2) return 1; if (p1 < p2) return -1; if (p1 > p2) return 1; return 0; }</code>
この更新された関数では、
まず、所有者名を比較します。それらが異なる場合、関数は -1 または 1 を返し、どちらを他方よりも優先するかを示します。
ただし、所有者名が同一の場合、関数はパブリケーション名の比較に進みます。この場合、順序を指定するために -1 または 1 を返します。
両方の比較の結果が等しい場合、関数は 0 を返し、2 つの要素が等しく、元の順序を保持する必要があることを示します。
このカスタム関数を使用して配列を並べ替えることで、owner_name で並べ替えてから、publication_name で並べ替えるという目標が達成されます。同じ名前の所有者はグループ化され、各グループ内の出版物がアルファベット順にリストされます。
以上が多次元 JavaScript 配列を複数の列で並べ替える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。