Kaedah pengisihan kemahiran tatasusunan_javascript objek JavaScript

WBOY
Lepaskan: 2016-05-16 15:35:53
asal
1347 orang telah melayarinya

Contoh dalam artikel ini menerangkan kaedah pengisihan tatasusunan objek JavaScript. Kongsikan dengan semua orang untuk rujukan anda, butirannya adalah seperti berikut:

Kaedah pengisihan fungsi tatasusunan Javascript, secara lalai, diisih dalam tertib menaik mengikut susunan aksara ASCII.
arrayobj.sort(fungsi isihan);

Parameter: sortFunction

Pilihan. ialah nama fungsi yang digunakan untuk menentukan susunan unsur. Jika parameter ini diabaikan, elemen akan diisih dalam susunan aksara ASCII menaik.

Kaedah isihan

mengisih objek Tatasusunan dengan sewajarnya; tiada objek Tatasusunan baharu dibuat semasa pelaksanaan.

Jika fungsi disediakan untuk argumen fungsi isihan, fungsi mesti mengembalikan salah satu daripada nilai berikut:

Nilai negatif jika parameter pertama yang diluluskan adalah lebih kecil daripada parameter kedua.
Sifar jika kedua-dua hujah adalah sama.
Nilai positif jika argumen pertama lebih besar daripada argumen kedua.

Kaedah di atas sangat mudah untuk pengisihan satu dimensi, tetapi bagaimana untuk melakukan pengisihan nilai berbilang kunci seperti ORDER BY dalam pernyataan SQL?

Pengisihan nilai berbilang kunci tatasusunan berbilang dimensi perlu lebih rumit, tetapi tidak perlu menggunakan gelung untuk menyelesaikannya. Penyelesaian sebenar adalah sama.

Nombor:

Contoh berikut adalah untuk mengisih tatasusunan berbilang dimensi nombor dalam susunan lajur 5, lajur 9 dan lajur 3, seperti ORDER BY col5, col9, col7 dalam pernyataan SQL. Apabila bercakap tentang nombor, anda boleh menolak terus kedua-dua item dan menggunakan hasilnya sebagai nilai pulangan.

<script language=javascript>
 var myArray = new Array();
 for(var i=0;i<10;i++ ){
 myArray[i]=new Array();
 myArray[i][0]=Math.floor(Math.random()*10); 
 myArray[i][1]=Math.floor(Math.random()*10);
 myArray[i][2]=Math.floor(Math.random()*10);
 myArray[i][3]=Math.floor(Math.random()*10);
 myArray[i][4]=Math.floor(Math.random()*10);
 myArray[i][5]=Math.floor(Math.random()*10);
 myArray[i][6]=Math.floor(Math.random()*10);
 myArray[i][7]=Math.floor(Math.random()*10);
 myArray[i][8]=Math.floor(Math.random()*10);
 }
 myArray.sort(
   function(x, y) {
    if(x[4]!=y[4]){
      return x[4]-y[4];
    } else if(x[8]!=y[8]){
      return x[8]-y[8];
    } else if(x[6]!=y[6]){
      return x[6]-y[6];
    } else {
      return 1;
    }
  }
  );
 for(var i=0;i<myArray.length;i++ )...{
 document.write(myArray[i].join(",") + "<br/>");
 }
</script>
Salin selepas log masuk

Watak:

aksara, item dalam sortFunction tidak boleh ditolak terus seperti nombor Anda perlu memanggil kaedah str1.localeCompare(str2) untuk perbandingan untuk memenuhi nilai pulangan. Berikut ialah kes pengisihan lajur 1 dan 2 tatasusunan berbilang dimensi.

function sortFunction(array) {
 return array.sort( function(x, y) ...{
 return (x[0]==y[0])&#63;(x[1].localeCompare(y[1])):(x[0].localeCompare(y[0]))
 });
}

Salin selepas log masuk

Jadi fungsi pengisihan arrayObject.sort(sortFunction) masih sangat berkuasa, dan akhirnya dapat merealisasikan fungsi yang sama seperti ORDER BY dalam pernyataan SQL.

Saya harap artikel ini akan membantu semua orang dalam pengaturcaraan JavaScript.

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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!