Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk Mengisih Tatasusunan Dua Dimensi mengikut Nilai Lajur dalam JavaScript?

Bagaimana untuk Mengisih Tatasusunan Dua Dimensi mengikut Nilai Lajur dalam JavaScript?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-21 09:31:13376semak imbas

How to Sort a Two-Dimensional Array by Column Value in JavaScript?

Mengisih Tatasusunan Dua Dimensi mengikut Nilai Lajur dalam JavaScript

Untuk mengisih tatasusunan 2D mengikut nilai lajurnya dalam JavaScript, anda boleh menggunakan kaedah Array.sort() dengan fungsi perbandingan tersuai. Fungsi ini membandingkan elemen dalam lajur yang ditentukan dan menentukan susunan isihan.

Pertimbangkan contoh berikut:

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

Untuk mengisih tatasusunan ini mengikut lajur pertama, anda boleh menggunakan kod berikut :

a.sort(sortFunction);

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

IsihanFunction membandingkan elemen pertama daripada dua baris yang dibandingkan (a[0] dan b[0]) dan mengembalikan -1 jika unsur pertama a adalah kurang daripada unsur pertama b, 1 jika ia lebih besar daripada, dan 0 jika ia sama. Ini mentakrifkan susunan isihan dan kaedah Array.sort() akan menyusun tatasusunan dengan sewajarnya.

Untuk mengisih mengikut lajur kedua, anda boleh mengubah suai fungsi isihan:

a.sort(compareSecondColumn);

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

Ini fungsi membandingkan elemen kedua baris yang dibandingkan. Menggunakan kaedah ini, anda boleh mengisih tatasusunan 2D dengan mudah mengikut mana-mana nilai lajur dalam JavaScript.

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

Kenyataan:
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