Rumah > hujung hadapan web > Soal Jawab bahagian hadapan > Apakah kaedah pengisihan tatasusunan es6

Apakah kaedah pengisihan tatasusunan es6

青灯夜游
Lepaskan: 2022-04-11 18:04:23
asal
13058 orang telah melayarinya

Kaedah 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))".

Apakah kaedah pengisihan tatasusunan es6

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))
Salin selepas log masuk
ParameterPenerangan
callback(a,b)
参数描述
callback(a,b)

可选。规定排序顺序。必须是函数。

Pilihan. Menentukan susunan isihan. Mesti satu fungsi.

Nilai pulangan: Jenis tatasusunan, yang merupakan rujukan kepada tatasusunan. Sila ambil perhatian bahawa tatasusunan diisih pada tatasusunan asal dan tiada salinan dibuat.


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]
Salin selepas log masuk

Apakah kaedah pengisihan tatasusunan es6

Daripada kod di atas kita dapat melihat bahawa kaedah sort() hanya boleh mengisih tatasusunan dengan betul dalam 0- 9 , walaupun nilai pulangan diberikan untuk item tatasusunan dengan lebih daripada dua digit, ia bukan hasil yang diisih. Ini kerana sort() diisih secara dalaman berdasarkan kod ASCLL, bukan berdasarkan nilai berangka. Jadi kaedah ini tidak boleh melakukan pengisihan formal pada nombor di atas dua digit. Bagaimanakah ia berbeza daripada ikan masin?

Inilah perkara penting: sort() boleh menerima panggilan balik (a, b) yang membawa dua parameter formal, iaitu, a dan b ialah dua elemen yang akan dibandingkan dalam saiz, dan terdapat mestilah nilai pulangan.
  • 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 内部写法
  let Arr = [56, 21, 29, 105, 45]
  Arr.sort(function(a, b) { //callback
      if (a > b) { // a b 分别是Arr中的 56 21
          return 1  //返回正数 ,b排列在a之前
      } else {
          return -1 //返回负数 ,a排列在b之前
      }
  })
  console.log(Arr) //[21, 29, 45, 55, 105]
Salin selepas log masuk
Terangkan singkatan:

Apakah kaedah pengisihan tatasusunan es6

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan