Heim > Web-Frontend > js-Tutorial > Sortiermethode für JavaScript-Objekte array_javascript skills

Sortiermethode für JavaScript-Objekte array_javascript skills

WBOY
Freigeben: 2016-05-16 15:35:53
Original
1409 Leute haben es durchsucht

Das Beispiel in diesem Artikel beschreibt die Sortiermethode des JavaScript-Objektarrays. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Die Sortiermethode der Array-Sortierfunktion von Javascript sortiert standardmäßig in aufsteigender Reihenfolge entsprechend der ASCII-Zeichenreihenfolge.
arrayobj.sort(sortfunction);

Parameter: sortFunction

Optional. ist der Name der Funktion, mit der die Reihenfolge der Elemente bestimmt wird. Wenn dieser Parameter weggelassen wird, werden die Elemente in aufsteigender ASCII-Zeichenreihenfolge sortiert.

Die

sort-Methode sortiert Array-Objekte entsprechend; während der Ausführung werden keine neuen Array-Objekte erstellt.

Wenn eine Funktion für das Argument sortfunction bereitgestellt wird, muss die Funktion einen der folgenden Werte zurückgeben:

Negativer Wert, wenn der erste übergebene Parameter kleiner als der zweite Parameter ist.
Null, wenn beide Argumente gleich sind.
Positiver Wert, wenn das erste Argument größer als das zweite Argument ist.

Die obige Methode ist für die eindimensionale Sortierung sehr praktisch, aber wie führt man eine Sortierung nach mehreren Schlüsselwerten wie ORDER BY in SQL-Anweisungen durch?

Die Sortierung mehrdimensionaler Arrays mit mehreren Schlüsselwerten muss komplizierter sein, es besteht jedoch keine Notwendigkeit, Schleifen zu verwenden, um das Problem zu lösen. Die tatsächliche Lösung ist dieselbe.

Nummer:

Das folgende Beispiel besteht darin, ein mehrdimensionales Array von Zahlen in der Reihenfolge Spalte 5, Spalte 9 und Spalte 3 zu sortieren, wie ORDER BY col5, col9, col7 in der SQL-Anweisung. Wenn es um Zahlen geht, können Sie die beiden Elemente direkt subtrahieren und das Ergebnis als Rückgabewert verwenden.

<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>
Nach dem Login kopieren

Charakter:

Zeichen, die Elemente in sortFunction können nicht direkt wie Zahlen subtrahiert werden. Sie müssen zum Vergleich die Methode str1.localeCompare(str2) aufrufen, um den Rückgabewert zu erfüllen. Im Folgenden werden die Spalten 1 und 2 eines mehrdimensionalen Arrays sortiert.

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]))
 });
}

Nach dem Login kopieren

Die Sortierfunktion von arrayObject.sort(sortFunction) ist also immer noch sehr leistungsfähig und kann endlich die gleiche Funktion wie ORDER BY in SQL-Anweisungen realisieren.

Ich hoffe, dass dieser Artikel für alle hilfreich ist, die sich mit der JavaScript-Programmierung befassen.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage