Masalah:
Bagaimana saya boleh mengisih tatasusunan 2D dalam JavaScript berdasarkan nilai dalam lajur tertentu?
Kod Coretan:
Untuk mengisih tatasusunan 2D mengikut lajur pertama, gunakan kod berikut:
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; } }
Penjelasan:
Kaedah sort() mengisih tatasusunan di tempatnya. Dalam kes ini, kita lulus sortFunction yang membandingkan elemen pertama dua tatasusunan a dan b dan mengembalikan -1 jika a harus didahului sebelum b, 1 jika b harus didahului sebelum a, atau 0 jika mereka sama.
Isih mengikut Lajur Kedua:
Untuk mengisih mengikut lajur kedua, gantikan sortFunction dengan berikut:
function compareSecondColumn(a, b) { if (a[1] === b[1]) { return 0; } else { return (a[1] < b[1]) ? -1 : 1; } }
Output:
Tatasusunan yang diisih akan kelihatan seperti ini:
[ [12, 'AAA'], [18, 'DDD'], [28, 'CCC'], [58, 'BBB'] ]
Atas ialah kandungan terperinci Bagaimana untuk Mengisih Tatasusunan 2D dalam JavaScript mengikut Nilai Lajur?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!