Apakah kaedah pengisihan tatasusunan es6
Apr 11, 2022 pm 06:04 PMKaedah pengisihan tatasusunan es6 ialah "sort()". Kaedah sort() digunakan untuk mengisih unsur tatasusunan Susunan isihan boleh mengikut abjad atau berangka, dan dalam susunan menaik atau menurun Kaedah lalai ini mempunyai parameter pilihan , dan sintaksnya ialah "array. sort(callback(a,b))".
Persekitaran pengendalian tutorial ini: sistem Windows 7, ECMAScript versi 6, komputer Dell G3. Kaedah
sort() digunakan untuk mengisih elemen tatasusunan.
Susun atur boleh mengikut abjad atau berangka dan dalam susunan menaik atau menurun.
Tertib isihan lalai adalah menaik mengikut abjad.
Antaranya, kaedah sort() mempunyai parameter pilihan. Walau bagaimanapun, parameter ini mestilah fungsi. Apabila memanggil kaedah sort() tatasusunan, jika tiada parameter diluluskan, elemen dalam tatasusunan akan diisih mengikut susunan abjad (tertib pengekodan aksara Jika anda ingin mengisih mengikut kriteria lain, anda perlu lulus parameter). dan ia adalah fungsi. Fungsi ini Membandingkan dua nilai dan mengembalikan nombor yang menerangkan susunan relatif kedua-dua nilai.
Sintaks:
array.sort(callback(a,b))
Parameter | Penerangan | ||||
---|---|---|---|---|---|
callback(a,b) |
|
Contoh:
//sort的基本使用 let arr = [8, 1, 4, 3, 7, 9] let Arr = [21, 55, 29, 105, 45] console.log(arr.sort()) //[1, 3, 4, 7, 8, 9] console.log(Arr.sort()) // [105, 21, 29, 45, 55]
- Apabila nilai pulangan panggilan balik ialah nombor positif, maka b akan disusun sebelum a; nombor negatif , maka a akan disusun sebelum b;
- Apabila nilai pulangan panggilan balik ialah 0, maka kedudukan a dan b kekal tidak berubah; ?? > Setiap kali isihan dilaksanakan, kedudukan dua parameter a dan b dalam tatasusunan asal akan ditukar berdasarkan nilai pulangan; membaca penerangan di atas, anda mesti Akan bertanya di mana nilai pulangan? Siapakah parameter sebenar parameter a b? Sebaik sahaja anda memahami kod berikut, ini semua adalah permainan kanak-kanak!
- Logik pelaksanaan:
- Perlu diambil perhatian bahawa dua parameter yang diterima melalui panggilan balik ( a , b ) ialah a = > , b ialah item seterusnya bagi item semasa Jika kedudukan item semasa dan item seterusnya kekal tidak berubah, b ialah indeks item seterusnya -1 syarat untuk menilai akhir traversal ialah parameter b akan berakhir jika nilai tidak dapat diperolehi Contohnya, dalam kod di atas, Dalam pelaksanaan kedua tiga pusingan, indeks item semasa ialah 3, maka b ialah item seterusnya, iaitu, 4. Item ke-4. tidak boleh diperolehi dalam tatasusunan, dan syarat untuk meneruskan traversal tidak dipenuhi, jadi traversal tamat!
Mari kita bincangkan tentang nilai pulangan: Nilai pulangan 1 dan -1 yang ditulis dalam kod di atas hanyalah perwakilan simbolik 1 ialah nombor positif dan -1 ialah nombor negatif Tidak kira apa nilai pulangan anda tulis dalam kod, isihan hanya akan menilai anda secara dalaman sama ada nilai pulangan ialah nombor positif atau nombor negatif, ia adalah wajar untuk mengembalikan 100 walaupun persamaan itu benar atau -10000 jika ia tidak benar.
//sort 內(nèi)部寫法 let Arr = [56, 21, 29, 105, 45] Arr.sort(function(a, b) { //callback if (a > b) { // a b 分別是Arr中的 56 21 return 1 //返回正數(shù) ,b排列在a之前 } else { return -1 //返回負數(shù) ,a排列在b之前 } }) console.log(Arr) //[21, 29, 45, 55, 105]Terangkan singkatan:
Seperti yang dapat dilihat daripada rajah di atas, kaedah pemprosesan dalaman bagi fungsi panggil balik ialah a - b, daripada membandingkan dua nombor. Ini kerana langkah membandingkan dua nombor dilakukan mengikut isihan Anda hanya perlu menentukan nilai pulangan Secara matematik, ia berlaku bahawa nombor besar - perpuluhan = nombor positif, nombor kecil - nombor besar = nombor negatif
. Contoh 56 - 21 = 35 ialah nombor positif, nilai pulangan ialah nombor positif, dan nombor positif mewakili perubahan kedudukan
21 - 88 = 35 ialah nombor negatif, nilai pulangan ialah a; nombor negatif, dan nombor negatif mewakili perubahan kedudukan;
Jika dalam matematik nombor besar - nombor kecil ≠ nombor positif, nombor kecil - nombor besar ≠ nombor negatif, ia tidak boleh disingkatkan seperti ini. Jadi harus jelas bahawa isihan secara dalaman membandingkan antara satu sama lain dan bukannya menolak antara satu sama lain; >
Atas ialah kandungan terperinci Apakah kaedah pengisihan tatasusunan es6. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Perbandingan prestasi kaedah membalik nilai kunci tatasusunan PHP menunjukkan bahawa fungsi array_flip() berprestasi lebih baik daripada gelung for dalam tatasusunan besar (lebih daripada 1 juta elemen) dan mengambil masa yang lebih singkat. Kaedah gelung untuk membalikkan nilai kunci secara manual mengambil masa yang agak lama.

Kaedah pengisihan tatasusunan pantas dalam PHP yang mengekalkan nama kunci: Gunakan fungsi ksort() untuk mengisih kekunci. Gunakan fungsi uasort() untuk mengisih menggunakan fungsi perbandingan yang ditentukan pengguna. Kes praktikal: Untuk mengisih tatasusunan ID pengguna dan skor mengikut skor sambil mengekalkan ID pengguna, anda boleh menggunakan fungsi uasort() dan fungsi perbandingan tersuai.

Fungsi array_group_by PHP boleh mengumpulkan elemen dalam tatasusunan berdasarkan kekunci atau fungsi penutupan, mengembalikan tatasusunan bersekutu dengan kuncinya ialah nama kumpulan dan nilainya ialah tatasusunan elemen kepunyaan kumpulan.

Fungsi array_group() PHP boleh digunakan untuk mengumpulkan tatasusunan dengan kunci yang ditentukan untuk mencari elemen pendua. Fungsi ini berfungsi melalui langkah berikut: Gunakan key_callback untuk menentukan kunci kumpulan. Secara pilihan, gunakan value_callback untuk menentukan nilai kumpulan. Kira elemen terkumpul dan kenal pasti pendua. Oleh itu, fungsi array_group() sangat berguna untuk mencari dan memproses elemen pendua.

Cara mengisih tatasusunan mengikut nilai dalam PHP sambil mengekalkan nama kunci ialah menggunakan fungsi usort() untuk mengisih tatasusunan mengikut nilai. Lulus fungsi tanpa nama kepada fungsi usort() sebagai fungsi perbandingan, yang mengembalikan perbezaan nilai elemen. usort() akan mengisih tatasusunan mengikut fungsi tanpa nama sambil mengekalkan nama kunci tidak berubah.

Ya, dalam banyak bahasa pengaturcaraan, tatasusunan boleh digunakan sebagai parameter fungsi, dan fungsi itu akan menjalankan operasi pada data yang disimpan di dalamnya. Sebagai contoh, fungsi printArray dalam C++ boleh mencetak elemen dalam tatasusunan, manakala fungsi printArray dalam Python boleh melintasi tatasusunan dan mencetak elemennya. Pengubahsuaian yang dibuat pada tatasusunan oleh fungsi ini juga ditunjukkan dalam tatasusunan asal dalam fungsi panggilan.

Dalam PHP, gunakan fungsi uasort() untuk mengisih tatasusunan mengikut peraturan pengisihan tersuai sambil mengekalkan nama kunci asal. Fungsi perbandingan tersuai ialah fungsi yang mengambil dua elemen sebagai input dan mengembalikan integer: nombor negatif bermakna yang pertama adalah kurang daripada yang kedua, sifar bermakna ia adalah sama dan nombor positif bermakna yang pertama lebih besar daripada yang kedua.

Melalui fungsi uksort() dan fungsi perbandingan tersuai compareKeyLengths, tatasusunan PHP boleh diisih mengikut panjang nama kunci tatasusunan sambil mengekalkan nama kunci. Fungsi perbandingan mengira perbezaan dalam panjang kunci dan mengembalikan integer, dan uksort() mengisih tatasusunan mengikut integer ini. Di samping itu, kes praktikal menunjukkan cara mengisih rekod daripada pangkalan data mengikut panjang nama medan.
