JavaScript: Organisationswerte sortieren

王林
Freigeben: 2023-08-30 20:17:02
Original
668 Leute haben es durchsucht

JavaScript: Organisationswerte sortieren

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():

  • Array von Zahlen
  • String-Array
  • Array komplexer Objekte
    • Nach Namen (Zeichenfolge)
    • Drücken Sie ID (Nummer)
    • Nach Geburtsdatum (Datum)

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.

JavaScript sort() Methoden

Die

JavaScript 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.

Array von Zahlen sortieren

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

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

Diese Funktion akzeptiert zwei Parameter (a und b), die die beiden zu sortierenden Werte darstellen. Wenn eine positive Zahl zurückgegeben wird, erkennt die ab),它们代表要排序的两个值。如果返回正数,则 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

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

Der nächste Schritt besteht darin, das String-Array zu sortieren.

String-Array in Java Script sortieren

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

Hier ist die Funktion zum Sortieren derselben Zeichenfolge in absteigender Reihenfolge:

function descString(a, b) {
    return b.localeCompare(a);
}
Nach dem Login kopieren
1,这意味着第二个名称将在排序数组中排在第一位。否则,我们返回 -1,如果两者相等,则返回 0Wenn der zweite Name alphabetisch nach dem Vornamen kommt, geben wir

von der Funktion zurück.

names 数组运行排序方法,并以 descWenn Sie nun

als Argument verwenden, erhalten Sie eine andere Ausgabe:

console.log(names.sort(descString))

// ["Victor", "Sam", "Koe", "Eke", "Adam"]
Nach dem Login kopieren

Sortieren Sie komplexe Objektarrays in JavaScript

sort()Bisher haben wir nur einfache Werte wie Zeichenfolgen und Zahlen sortiert. Sie können die Methode

auch verwenden, um ein Array von Objekten zu sortieren. Sehen wir uns im folgenden Abschnitt an, wie es geht.

Objekte nach Namen sortieren (String-Attribut)

people 数组,其中包含多个 person 对象。每个对象由 idnamedobHier haben wir ein

-Attribut bestehend aus:

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'}
]
Nach dem Login kopieren
name 属性对此数组进行排序,我们必须创建一个自定义排序函数并将其传递给 sortUm dieses Array nach dem Attribut name zu sortieren, müssen wir eine benutzerdefinierte Sortierfunktion erstellen und diese an die

-Methode übergeben:

students.sort(byName)
Nach dem Login kopieren
byNameDiese

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

Wenn Sie nun den Code erneut ausführen, erhalten Sie das folgende Ergebnis: 🎜
[
  {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'}
]
Nach dem Login kopieren

按 ID 排序(数字属性)

在前面的示例中,我们按名称(字符串)进行排序。在此示例中,我们将按每个对象的 ID 属性(数字)进行排序。

为此,我们可以使用以下函数:

function byID(a, b) {
  return parseInt(a.id) - parseInt(b.id)
}
Nach dem Login kopieren

在函数中,我们使用 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'},
]
*/
Nach dem Login kopieren

按日期排序

假设您想要构建一个应用程序,允许用户从数据库下载姓名列表,但您希望根据出生日期(从最年长到最年轻)按时间顺序排列姓名.

此函数按年、月、日的时间顺序对出生日期进行排序。

function byDate(a, b) {
   return new Date(a.dob).valueOf() - new Date(b.dob).valueOf()
}
Nach dem Login kopieren

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'}
]
*/
Nach dem Login kopieren

这种特殊方法在涉及日期顺序的情况下非常方便,例如确定谁有资格获得养老金或其他与年龄相关的福利的申请。

结论

总的来说,使用各种内置方法时,在 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!

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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!