Rumah > Artikel > hujung hadapan web > Pengajaran dalam Kesederhanaan: Menyusun Fail Seperti Pro dalam Temuduga
Semasa temu bual teknikal untuk peranan pembangun timbunan penuh, saya mendapati diri saya berada dalam situasi yang biasa tetapi mencabar secara tidak dijangka. Semuanya berjalan lancar sehingga penemuduga memberikan saya tugasan yang kelihatan mudah pada mulanya.
"Bolehkah anda mengisih nama fail ini mengikut cara ia muncul dalam peneroka fail, dalam tertib menaik?" mereka bertanya.
Saya fikir, "Sekeping kek." Isih ialah operasi asas yang saya tidak menjangkakan sebarang masalah. Tetapi sebaik sahaja saya mula menulis kod itu, saya mengalami masalah. Nama fail tersebar di mana-mana, sesetengahnya mudah, tetapi yang lain termasuk nombor, huruf dan gabungan kedua-duanya.
Saya cuba menggunakan kaedah pengisihan rentetan asas seperti:
array.sort();
Tetapi ini menghasilkan keputusan yang ganjil. Nombor diisih mengikut leksikografi (bermaksud "10" akan didahulukan sebelum "2" kerana ia bermula dengan "1"), dan rentetan abjad angka bercampur tidak dalam susunan yang betul. Ia adalah kucar-kacir dan ia tidak menyerupai susunan semula jadi yang anda lihat dalam peneroka fail sama sekali.
Saya dapat merasakan jam berdetik dan tekanan meningkat. Saya cuba bekerja melalui pelbagai fungsi perbandingan tersuai untuk mengendalikan nombor dengan betul, tetapi tiada apa yang kelihatan seperti mengklik.
Kemudian, saya teringat helah mudah yang pernah saya baca tidak lama dahulu: localeCompare.
localeCompare membolehkan anda membandingkan rentetan dengan cara yang meniru cara manusia menyusun sesuatu. Dengan menggunakannya dengan pilihan angka, ia mengendalikan nombor sebagai nombor sebenar dan bukannya membandingkannya sebagai teks. Inilah kod yang saya gunakan:
array.sort((a, b) => a.localeCompare(b, undefined, { numeric: true, sensitiviti: 'base' }));
Baris tunggal kod ini mengisih nama fail sama seperti yang dilakukan oleh peneroka fail: nombor disusun secara semula jadi dan gabungan huruf/nombor dikendalikan dengan lancar.
Sebaik sahaja saya menjalankan kod, saya melihat susunan yang betul muncul pada skrin. Nama fail telah diisih dengan sempurna dalam tertib menaik, sama seperti dalam peneroka fail. Saya tersenyum sambil menerangkan penyelesaian kepada penemuduga, yang kelihatan gembira dengan cara saya menyelesaikan isu itu.
Apa yang pada mulanya dirasakan sebagai masalah rumit akhirnya diselesaikan dengan penyelesaian yang ringkas dan elegan. Ia adalah peringatan bahawa kadangkala alat yang paling berkesan adalah yang paling mudah, dan mengetahui helah kecil itu boleh membuat semua perbezaan.
Atas ialah kandungan terperinci Pengajaran dalam Kesederhanaan: Menyusun Fail Seperti Pro dalam Temuduga. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!