Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Mengisih Tatasusunan 2D mengikut Nilai Lajur dalam JavaScript?

Bagaimana untuk Mengisih Tatasusunan 2D mengikut Nilai Lajur dalam JavaScript?

Barbara Streisand
Lepaskan: 2024-11-15 19:11:05
asal
369 orang telah melayarinya

How to Sort a 2D Array by Column Value in JavaScript?

Isih Tatasusunan 2D dalam JavaScript

Bagaimanakah saya boleh mengisih tatasusunan 2D mengikut nilai lajur dalam JavaScript?

Andaikan kita mempunyai tatasusunan 2D dengan format berikut:

[[12, "AAA"], [58, "BBB"], [28, "CCC"], [18, "DDD"]]
Salin selepas log masuk

Kami mahu mengisih tatasusunan ini mengikut lajur pertama, menghasilkan:

[[12, "AAA"], [18, "DDD"], [28, "CCC"], [58, "BBB"]]
Salin selepas log masuk

Penyelesaian:

Mengisih tatasusunan 2D mengikut nilai lajur adalah mudah dalam JavaScript. Begini cara anda boleh melakukannya:

var a = [[12, 'AAA'], [58, 'BBB'], [28, 'CCC'],[18, 'DDD']];

a.sort(sortFunction);

function sortFunction(a, b) {
    if (a[0] === b[0]) {
        return 0;
    }
    else {
        return (a[0] < b[0]) ? -1 : 1;
    }
}
Salin selepas log masuk

Fungsi ini menggunakan peraturan berikut:

  • Jika elemen dalam lajur pertama adalah sama, kembalikan 0.
  • Jika elemen dalam lajur pertama tatasusunan pertama kurang daripada lajur kedua, kembalikan -1.
  • Jika elemen dalam lajur pertama tatasusunan pertama lebih besar daripada lajur kedua, kembalikan 1.

Untuk mengisih tatasusunan mengikut lajur kedua, cuma gantikan a[0] dengan a[1] dalam fungsi perbandingan.

a.sort(compareSecondColumn);

function compareSecondColumn(a, b) {
    if (a[1] === b[1]) {
        return 0;
    }
    else {
        return (a[1] < b[1]) ? -1 : 1;
    }
}
Salin selepas log masuk

Rujuk dokumentasi JavaScript untuk mendapatkan maklumat lanjut tentang fungsi isihan.

Atas ialah kandungan terperinci Bagaimana untuk Mengisih Tatasusunan 2D mengikut Nilai Lajur dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan