Rumah > Artikel > hujung hadapan web > Bagaimana untuk Mengisih Tatasusunan JavaScript Berbilang Dimensi dengan Berbilang Lajur?
Mengisih Tatasusunan Berbilang Dimensi mengikut Berbilang Lajur
Dalam JavaScript, menyusun tatasusunan rentetan boleh dicapai dengan mudah menggunakan fungsi Array.sort() . Walau bagaimanapun, untuk tatasusunan berbilang dimensi, atau apabila mengisih berdasarkan berbilang kriteria, fungsi tersuai diperlukan.
Pertimbangkan tatasusunan dengan struktur berikut:
[publicationID][publication_name][ownderID][owner_name]
Matlamatnya adalah untuk mengisih tatasusunan mengikut nama_pemilik dan kemudian dengan nama_publikasi, yang akan menyebabkan pemilik dengan nama yang sama dikumpulkan bersama, dan penerbitan dalam setiap kumpulan diisih mengikut abjad.
Sebelum ini, fungsi isihan tersuai bernama mysortfunction telah diperkenalkan, yang mengisih tatasusunan berdasarkan satu lajur, owner_name. Untuk melanjutkan fungsi ini untuk pengisihan berbilang lajur, pengubahsuaian berikut boleh dibuat:
<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>
Dalam fungsi yang dikemas kini ini:
Pertama, ia membandingkan nama pemilik. Jika ia berbeza, fungsi mengembalikan -1 atau 1 untuk menandakan yang mana satu harus mendahului yang lain.
Walau bagaimanapun, jika nama pemilik adalah sama, fungsi meneruskan untuk membandingkan nama penerbitan. Dalam kes ini, ia mengembalikan -1 atau 1 untuk menentukan susunannya.
Jika kedua-dua perbandingan menghasilkan kesamaan, fungsi mengembalikan 0, menunjukkan bahawa kedua-dua elemen adalah sama dan harus mengekalkan susunan asalnya.
Dengan mengisih tatasusunan menggunakan fungsi tersuai ini, matlamat untuk mengisih mengikut nama_pemilik dan kemudian mengikut nama_penerbitan tercapai. Pemilik dengan nama yang sama akan dikumpulkan bersama, dengan penerbitan dalam setiap kumpulan disenaraikan mengikut abjad.
Atas ialah kandungan terperinci Bagaimana untuk Mengisih Tatasusunan JavaScript Berbilang Dimensi dengan Berbilang Lajur?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!