Wenn Sie die Grundlagen von JavaScript-Arrays bereits kennen, ist es an der Zeit, Ihre Fähigkeiten mit fortgeschritteneren Themen auf die nächste Stufe zu bringen. In dieser Reihe von Tutorials befassen Sie sich mit dem fortgeschrittenen Thema der Programmierung mit Arrays in JavaScript.
Das Sortieren eines Arrays ist eine der häufigsten Aufgaben beim Programmieren in JavaScript. Als JavaScript-Programmierer ist es daher wichtig zu lernen, wie man Arrays richtig sortiert, da Sie dies in realen Projekten häufig tun werden. Die falsche Sortiertechnik kann Ihre Bewerbung wirklich verlangsamen!
In der Vergangenheit mussten Webentwickler Bibliotheken von Drittanbietern wie jQuery verwenden und viel Code schreiben, um Werte in einer Sammlung von Listen zu sortieren. Glücklicherweise hat sich JavaScript seitdem enorm weiterentwickelt. Jetzt können Sie JavaScript-Arrays mit Tausenden von Werten mit nur einer Codezeile sortieren, ohne Bibliotheken von Drittanbietern verwenden zu müssen.
In diesem Artikel zeige ich Ihnen, wie Sie einfache und komplexe Array-Sammlungen in JavaScript sortieren. Zum Sortieren verwenden wir die JavaScript-Methode sort()
:
Am Ende dieses Tutorials sollten Sie ein umfassendes Verständnis davon haben, wie die Methode sort()
von JavaScript funktioniert und wie Sie sie zum Sortieren von Arrays aus Zahlen, Zeichenfolgen und Objekten verwenden.
sort()
MethodenJavaScript sort()
-Methode ist eine der nützlichsten und am häufigsten verwendeten Array-Methoden in JavaScript. Damit können Sie ein Array von Datenelementen schnell und einfach in aufsteigender oder absteigender Reihenfolge sortieren.
Mit dieser Methode können Sie Arrays aus Zahlen, Zeichenfolgen, Datumsangaben und sogar Objekten sortieren. Die sort()
-Methode funktioniert, indem sie eine Reihe von Elementen nimmt und sie anhand einiger Kriterien sortiert. Ein Kriterium kann eine Funktion, ein Vergleichsoperator oder ein Wertearray sein.
Das Sortieren eines Zahlenarrays ist mit der sort
-Methode ganz einfach:
let numbers = [12, 88, 57, 99, 03, 01, 83, 21] console.log(numbers.sort()) // output [1, 12, 21, 3, 57, 83, 88, 99]
Im obigen Code sortiert die sort()
方法对numbers
-Methode Nummern
in aufsteigender Reihenfolge, was der Standardmodus ist.
Sie können die Zahlen auch rückwärts (also in absteigender Reihenfolge) sortieren. Dazu müssen Sie die folgende benutzerdefinierte Sortierfunktion erstellen:
function desc(a, b) { return b - a }
Diese Funktion akzeptiert zwei Parameter (a
und b
), die die beiden zu sortierenden Werte darstellen. Wenn eine positive Zahl zurückgegeben wird, erkennt die a
和 b
),它们代表要排序的两个值。如果返回正数,则 sort()
方法将理解 b
应在 a
之前排序。如果它返回负数,则 sort()
将理解 a
应该位于 b
之前。如果 b
> a
,则该函数将返回正数,这意味着如果 a
小于 b
,则 b
将位于 a
-Methode, dass b
vor a
sortiert werden sollte. Wenn eine negative Zahl zurückgegeben wird, versteht
a
vor b
stehen sollte. Die Funktion gibt eine positive Zahl zurück, wenn b
> a
, d. h. wenn a
kleiner als b
ist b
kommt vor a
.
console.log(numbers.sort(desc)) // output [99, 88, 83, 57, 21, 12, 3, 1]
Das Sortieren von String-Werten ist genauso einfach:
let names = ["Sam", "Koe", "Eke", "Victor", "Adam"] console.log(names.sort()) // output ["Adam", "Eke", "Koe", "Sam", "Victor"]
function descString(a, b) { return b.localeCompare(a); }
1
,这意味着第二个名称将在排序数组中排在第一位。否则,我们返回 -1
,如果两者相等,则返回 0
Wenn der zweite Name alphabetisch nach dem Vornamen kommt, geben wir von der Funktion zurück.
names
数组运行排序方法,并以 desc
Wenn Sie nun
console.log(names.sort(descString)) // ["Victor", "Sam", "Koe", "Eke", "Adam"]
sort()
Bisher haben wir nur einfache Werte wie Zeichenfolgen und Zahlen sortiert. Sie können die Methode
people
数组,其中包含多个 person 对象。每个对象由 id
、name
和 dob
Hier haben wir ein
const people = [ {id: 15, name: "Blessing", dob: '1999-04-09'}, {id: 17, name: "Aladdin", dob: '1989-06-21'}, {id: 54, name: "Mark", dob: '1985-01-08'}, {id: 29, name: "John", dob: '1992-11-09'}, {id: 15, name: "Prince", dob: '2001-09-09'} ]
name
属性对此数组进行排序,我们必须创建一个自定义排序函数并将其传递给 sort
Um dieses Array nach dem Attribut name
zu sortieren, müssen wir eine benutzerdefinierte Sortierfunktion erstellen und diese an die -Methode übergeben:
students.sort(byName)
byName
Diese benutzerdefinierte Sortierfunktion nimmt jedes Mal zwei Objekte und vergleicht ihre beiden Namenseigenschaften, um zu sehen, welches größer ist (d. h. alphabetisch an erster Stelle steht):
function byName(a, b) { return a.name.localeCompare(b.name); }
[ {id: 17, name: "Aladdin", dob: '1989-06-21'}, {id: 15, name: "Blessing", dob: '1999-04-09'}, {id: 29, name: "John", dob: '1992-11-09'}, {id: 54, name: "Mark", dob: '1985-01-08'}, {id: 32, name: "Prince", dob: '2001-09-09'} ]
在前面的示例中,我们按名称(字符串)进行排序。在此示例中,我们将按每个对象的 ID 属性(数字)进行排序。
为此,我们可以使用以下函数:
function byID(a, b) { return parseInt(a.id) - parseInt(b.id) }
在函数中,我们使用 parseInt()
来确保该值是一个数字,然后我们将两个数字相减以获得负值、正值或零值。使用此函数,您可以按公共数字属性对任何对象数组进行排序。
console.log(students.sort(byID)) /* [ {id: 15, name: "Blessing", dob: '1999-04-09'}, {id: 17, name: "Aladdin", dob: '1989-06-21'}, {id: 29, name: "John", dob: '1992-11-09'}, {id: 32, name: "Prince", dob: '2001-09-09'} {id: 54, name: "Mark", dob: '1985-01-08'}, ] */
假设您想要构建一个应用程序,允许用户从数据库下载姓名列表,但您希望根据出生日期(从最年长到最年轻)按时间顺序排列姓名.
此函数按年、月、日的时间顺序对出生日期进行排序。
function byDate(a, b) { return new Date(a.dob).valueOf() - new Date(b.dob).valueOf() }
Date().valueOf()
调用返回每个日期的时间戳。然后,我们执行与前面示例中相同的减法来确定顺序。
演示:
console.log(students.sort(byDate)) /* [ {id: 54, name: "Mark", dob: '1985-01-08'}, {id: 17, name: "Aladdin", dob: '1989-06-21'}, {id: 29, name: "John", dob: '1992-11-09'}, {id: 15, name: "Blessing", dob: '1999-04-09'}, {id: 32, name: "Prince", dob: '2001-09-09'} ] */
这种特殊方法在涉及日期顺序的情况下非常方便,例如确定谁有资格获得养老金或其他与年龄相关的福利的申请。
总的来说,使用各种内置方法时,在 JavaScript 中对元素进行排序非常简单。无论您需要对数字、字符串、对象还是日期数组进行排序,都有一种方法可以轻松完成这项工作。借助这些方法,您可以快速轻松地对 JavaScript 应用程序中的任何数据进行排序。
Das obige ist der detaillierte Inhalt vonJavaScript: Organisationswerte sortieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!