多次元 JavaScript 配列を複数の列で並べ替える方法

DDD
リリース: 2024-10-28 23:18:30
オリジナル
121 人が閲覧しました

How to Sort a Multidimensional JavaScript Array by Multiple Columns?

複数の列による多次元配列の並べ替え

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>
ログイン後にコピー

この更新された関数では、

  • o1 と o2 は所有者名を小文字で表します。
  • p1 と p2 は小文字でパブリケーション名を表します。

まず、所有者名を比較します。それらが異なる場合、関数は -1 または 1 を返し、どちらを他方よりも優先するかを示します。

ただし、所有者名が同一の場合、関数はパブリケーション名の比較に進みます。この場合、順序を指定するために -1 または 1 を返します。

両方の比較の結果が等しい場合、関数は 0 を返し、2 つの要素が等しく、元の順序を保持する必要があることを示します。

このカスタム関数を使用して配列を並べ替えることで、owner_name で並べ替えてから、publication_name で並べ替えるという目標が達成されます。同じ名前の所有者はグループ化され、各グループ内の出版物がアルファベット順にリストされます。

以上が多次元 JavaScript 配列を複数の列で並べ替える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!