Heim  >  Artikel  >  Web-Frontend  >  So sortieren Sie mit der Javascript-Sortiermethode

So sortieren Sie mit der Javascript-Sortiermethode

青灯夜游
青灯夜游Original
2021-07-16 17:07:0012671Durchsuche

In Javascript wird die Sortiermethode verwendet, um Array-Elemente basierend auf bestimmten Bedingungen zu sortieren. Wenn die Methode sort() ohne Übergabe von Parametern aufgerufen wird, werden die Elemente im Array alphabetisch sortiert; wenn ein Funktionsparameter angegeben wird, werden die Elemente im Array entsprechend der von der Funktion bereitgestellten Reihenfolge sortiert.

So sortieren Sie mit der Javascript-Sortiermethode

Die Betriebsumgebung dieses Tutorials: Windows 7-System, JavaScript-Version 1.8.5, Dell G3-Computer. Die Methode

sort() kann Array-Elemente nach bestimmten Bedingungen sortieren. Wenn die Methode sort() ohne Argumente aufgerufen wird, werden die Elemente im Array alphabetisch sortiert.

var a = ["a","e","d","b","c"];  //定义数组
a.sort();  //按字母顺序对元素进行排序
console.log(a);  //返回数组[a,b,c,d,e]

Bei Verwendung der Methode sort() sollten Sie auf die folgenden Punkte achten.

1) Die sogenannte alphabetische Reihenfolge richtet sich tatsächlich nach der Reihenfolge der Buchstaben in der Zeichenkodierungstabelle. Jedes Zeichen hat eine eindeutige Nummer in der Zeichentabelle.

2) Wenn das Element kein String ist, versucht die Methode sort(), die Array-Elemente zum Vergleich in einen String umzuwandeln.

3) Die Methode sort() führt einen bitweisen Vergleich basierend auf Elementwerten durch, anstatt basierend auf der Anzahl der Zeichenfolgen zu sortieren.

var a = ["aba","baa","aab"];  定义数组
a.sort();  //按字母顺序对元素进行排序
console.log(a);  //返回数组[aab,aba,baa]

Vergleichen Sie beim Sortieren zuerst das erste Zeichen jedes Elements. Wenn das erste Zeichen dasselbe ist, vergleichen Sie das zweite Zeichen und so weiter.

4) In jedem Fall werden undefinierte Elemente im Array am Ende sortiert.

5) Die Methode sort() führt Sortiervorgänge auf Basis des ursprünglichen Arrays durch und erstellt kein neues Array. Die Methode

sort() sortiert nicht nur alphabetisch, sondern kann auch Operationen basierend auf anderen Reihenfolgen ausführen. In diesem Fall muss der Methode ein Funktionsparameter zur Verfügung gestellt werden, der die beiden Werte vergleicht und eine Zahl zurückgibt, die die relative Reihenfolge der beiden Werte beschreibt. Die Sortierfunktion sollte zwei Parameter a und b haben und ihr Rückgabewert ist wie folgt.

  • Wenn a gemäß den benutzerdefinierten Kriterien kleiner als b ist, sollte a vor b im sortierten Array erscheinen und ein Wert kleiner als 0 wird zurückgegeben.

  • Wenn a gleich b ist, wird 0 zurückgegeben.

  • Wenn a größer als b ist, wird ein Wert größer als 0 zurückgegeben.

Beispiel 1

Im folgenden Beispiel wird die Größe jedes Elements im Array gemäß der Sortierfunktion verglichen und die Sortierung erfolgt in der Reihenfolge von klein nach groß.

function f(a,b) {  //排序函数
    return (a - b);  //返回比较参数
}
var a = [3,1,2,4,5,7,6,8,0,9];  //定义数组
a.sort(f);  //根据数字大小由小到大进行排序
console.log(a);  //返回数组[0,1,2,3,4,5,6,4,7,8,9]

Wenn die Ausführung in der Reihenfolge vom größten zum kleinsten erfolgt, negieren Sie einfach den Rückgabewert. Der Code lautet wie folgt:

function f(a,b) {  //排序函数
    return -(a - b);  //取反并返回比较参数
}
var a = [3,1,2,4,5,7,6,8,0,9];  //定义数组
a.sort(f);  //根据数字大小由小到大进行排序
console.log(a);  //返回数组[9,8,7,6,5,4,3,2,1,0]

Beispiel 2

Arrays basierend auf ungeraden und geraden Eigenschaften anordnen.

sort() ist flexibler in der Verwendung, hauptsächlich zum Sortieren und Vergleichen von Funktionen. Wenn Sie beispielsweise ein Array nach ungeraden und geraden Zahlen sortieren, müssen Sie nur feststellen, ob die beiden Parameter in der Sequenzfunktion ungerade und gerade Zahlen sind, und die Sortierreihenfolge festlegen. Beim Aufruf der Sortierfunktion übergibt die Methode

function f(a, b) {  //排序函数
    var a = a % 2;  //获取参数a的奇偶性
    var b = b % 2;  //获取参数b的奇偶性
    if (a == 0) return 1;  //如果参数a为偶数,则排在左边
    if (b == 0) return -1;  //如果参数b为偶数,则排在右边
}
var a = [3,1,2,4,5,7,6,8,0,9];  //定义数组
a.sort(f);  //根据数字大小由大到小进行排序
console.log(a);  //返回数组[3,1,5,7,9,0,8,6,4,2]

sort() jeden Elementwert an die Sortierfunktion. Wenn der Elementwert eine gerade Zahl ist, bleibt seine Position unverändert Die Reihenfolge der Parameter a und b wird vertauscht, wodurch eine ungerade-gerade Sortierung für alle Elemente im Array durchgeführt wird. Wenn Sie möchten, dass gerade Zahlen an erster Stelle und ungerade Zahlen an letzter Stelle stehen, müssen Sie nur den Rückgabewert abrufen. Die Sortierfunktion ist wie folgt.

function f(a, b) {
    var a = a % 2;
    var b = b % 2;
    if (a == 0) return -1;
    if (b == 0) return 1;
}

Beispiel 3

Zeichenfolgen ohne Berücksichtigung der Groß- und Kleinschreibung sortieren.

Unter normalen Umständen wird beim Sortieren von Zeichenfolgen zwischen Groß- und Kleinschreibung unterschieden, da die Reihenfolge der einzelnen Groß- und Kleinbuchstaben in der Zeichenkodierungstabelle unterschiedlich ist und Großbuchstaben größer als Kleinbuchstaben sind.

var a = ["aB", "Ab", "Ba", "bA"];  //定义数组
a.sort();  //默认方法排序
console.log(a);  //返回数组["Ab", "Ba", "aB", "bA"]

Großbuchstaben werden immer links angeordnet, Sie können Folgendes entwerfen:

function f(a ,b) {
    return (a < b);
}
var a = ["aB", "Ab", "Ba", "bA"];  //定义数组
a.sort();  //默认方法排序
console.log(a);  //返回数组["Ab", "Ba", "aB", "bA"]

Beim Vergleich der Buchstabengrößen wird JavaScript anhand der Zeichenkodierungsgröße bestimmt Es ist wahr. Wenn es falsch ist, wird 1 zurückgegeben. Wenn es falsch ist, wird -1 zurückgegeben.

Wenn Sie nicht auf Groß- und Kleinschreibung achten möchten und Groß- und Kleinbuchstaben in der gleichen Reihenfolge angeordnet sind, können Sie Folgendes entwerfen:

function f(a, b) {
    var a = a.toLowerCase;
    var b = b.toLowerCase; 
    if (a < b) {
        return 1;
    }
    else {
        return -1;
    }
}
var a = ["aB", "Ab", "Ba", "bA"];  //定义数组
a.sort();  //默认方法排序
console.log(a);  //返回数组["aB", "Ab", "Ba", "bA"]

Wenn Sie die Sortierreihenfolge anpassen möchten, legen Sie einfach den Rückgabewert fest invertiert.

Beispiel 4

Gleitkommazahlen und Ganzzahlen getrennt anzeigen.

function f(a, b) {  //排序函数
    if (a > Math.floor(a)) return 1;  //如果a是浮点数,则调换位置
    if (b > Math.floor(b)) return -1;  //如果b是浮点数,则调换位置
}
var a = [3.5555, 1.23456, 3, 2.11111, 5, 7, 3];  //定义数组
a.sort(f);  //进行筛选
console.log(a);  //返回数组[3,5,7,3,2.11111,1.23456,3.55555]

Wenn Sie die Sortierreihenfolge anpassen möchten, stellen Sie einfach den Rückgabewert so ein, dass er invertiert wird.

【Empfohlenes Lernen: Javascript-Tutorial für Fortgeschrittene

Das obige ist der detaillierte Inhalt vonSo sortieren Sie mit der Javascript-Sortiermethode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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