Menyusun Semula Tatasusunan Berdasarkan Nilai Bantu
Dalam JavaScript, mungkin terdapat senario di mana anda perlu mengisih satu tatasusunan berdasarkan susunan yang ditentukan oleh tatasusunan lain. Ini amat berguna apabila bekerja dengan struktur data di mana susunan elemen adalah penting.
Pertimbangkan contoh berikut:
itemsArray = [ ['Anne', 'a'], ['Bob', 'b'], ['Henry', 'b'], ['Andrew', 'd'], ['Jason', 'c'], ['Thomas', 'b'] ]; sortingArr = [ 'b', 'c', 'b', 'b', 'a', 'd' ];
Dalam kes ini, matlamatnya adalah untuk menyusun semula itemArray kepada sepadan dengan susunan sortingArr. Malangnya, tiada ID untuk menjejaki elemen, jadi keutamaan adalah untuk memadankan susunan sedekat mungkin.
Penyelesaian:
Untuk mencapai ini, anda boleh memanfaatkan kaedah sort() terbina dalam JavaScript bersama-sama dengan fungsi perbandingan tersuai. Fungsi perbandingan membandingkan dua elemen daripada itemsArray berdasarkan nilai sepadannya dalam sortingArr.
itemsArray.sort(function(a, b){ return sortingArr.indexOf(a) - sortingArr.indexOf(b); });
Ungkapan ini pada asasnya mengisih itemsArray berdasarkan indeks yang sepadan dengan elemennya dalam sortingArr. Akibatnya, tatasusunan yang disusun semula akan menyerupai yang berikut:
itemsArray = [ ['Bob', 'b'], ['Jason', 'c'], ['Henry', 'b'], ['Thomas', 'b'] ['Anne', 'a'], ['Andrew', 'd'], ];
Penyelesaian ini mengutamakan susunan yang ditentukan oleh sortingArr dan mengeluarkan itemsArray dalam susunan yang dikehendaki.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Isih Satu Tatasusunan Berdasarkan Susunan Tatasusunan Lain dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!