Wie sortiere ich eine Reihe von Objekten nach einem Eigenschaftswert?
在JavaScript中,可以通过提供一个比较函数使用.sort()方法按属性值排序对象数组。对于数值属性的升序排列,用a.age - b.age;降序则用b.age - a.age;字符串属性排序需使用localeCompare()方法,并可调整大小写敏感性;处理混合或复杂数据类型时应规范化值、妥善处理undefined或null,并可借助辅助函数,例如通过getOrderValue返回标准化排序值进行计算,从而实现数组按特定属性正确排序。
You can sort an array of objects by a property value in JavaScript using the .sort()
method. The trick is to provide a comparison function that tells JavaScript how to compare two objects based on the desired property.
Sorting Numbers in Ascending Order
To sort an array of objects by a numeric property, like age
, you can subtract one value from the other in the comparator function:
const people = [ { name: 'Alice', age: 30 }, { name: 'Bob', age: 25 }, { name: 'Charlie', age: 35 } ]; people.sort((a, b) => a.age - b.age);
This will sort the array so the person with the lowest age comes first.
If you want descending order instead, just flip the subtraction: b.age - a.age
.
Sorting Strings Alphabetically
When sorting by string properties like name
, you need to use comparison logic suitable for strings — usually with localeCompare():
const people = [ { name: 'Zoe', age: 28 }, { name: 'John', age: 32 }, { name: 'Anna', age: 25 } ]; people.sort((a, b) => a.name.localeCompare(b.name));
localeCompare()
handles alphabetical ordering correctly, including case sensitivity and special characters.- If you don’t care about case, you might normalize the strings before comparing:
a.name.toLowerCase().localeCompare(b.name.toLowerCase())
Handling Mixed or Complex Data Types
Sometimes the values you're comparing may not be straightforward — maybe some are numbers, some are strings, or even nested values.
In those cases, it’s good practice to:
- Normalize values before comparison
- Handle undefined or null values gracefully
- Use a helper function inside
.sort()
if needed
Example:
const items = [ { label: 'Item C', order: 'last' }, { label: 'Item A', order: 1 }, { label: 'Item B', order: 3 } ]; const getOrderValue = (item) => { if (typeof item.order === 'number') return item.order; if (item.order === 'last') return Infinity; return 0; }; items.sort((a, b) => getOrderValue(a) - getOrderValue(b));
This helps when your data isn't consistent across all objects.
Sorting arrays of objects by a property doesn’t have to be tricky — once you know how to use .sort()
with a custom comparator, you can handle most common scenarios pretty easily. Just remember to adjust your comparison logic depending on whether you're working with numbers, strings, or mixed data types.
Das obige ist der detaillierte Inhalt vonWie sortiere ich eine Reihe von Objekten nach einem Eigenschaftswert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Zu den Methoden zum tiefen Kopieren von Arrays in PHP gehören: JSON-Kodierung und -Dekodierung mit json_decode und json_encode. Verwenden Sie array_map und clone, um tiefe Kopien von Schlüsseln und Werten zu erstellen. Verwenden Sie Serialize und Deserialize für die Serialisierung und Deserialisierung.

Der Leistungsvergleich der PHP-Methoden zum Umdrehen von Array-Schlüsselwerten zeigt, dass die Funktion array_flip() in großen Arrays (mehr als 1 Million Elemente) eine bessere Leistung als die for-Schleife erbringt und weniger Zeit benötigt. Die for-Schleifenmethode zum manuellen Umdrehen von Schlüsselwerten dauert relativ lange.

Die beste Vorgehensweise zum Durchführen einer Array-Deep-Kopie in PHP besteht darin, json_decode(json_encode($arr)) zu verwenden, um das Array in einen JSON-String zu konvertieren und ihn dann wieder in ein Array umzuwandeln. Verwenden Sie unserialize(serialize($arr)), um das Array in eine Zeichenfolge zu serialisieren und es dann in ein neues Array zu deserialisieren. Verwenden Sie den RecursiveIteratorIterator, um mehrdimensionale Arrays rekursiv zu durchlaufen.

Die PHP-Funktion array_group_by kann Elemente in einem Array basierend auf Schlüsseln oder Abschlussfunktionen gruppieren und ein assoziatives Array zurückgeben, wobei der Schlüssel der Gruppenname und der Wert ein Array von Elementen ist, die zur Gruppe gehören.

Mit der Funktion array_group() von PHP kann ein Array nach einem angegebenen Schlüssel gruppiert werden, um doppelte Elemente zu finden. Diese Funktion durchläuft die folgenden Schritte: Verwenden Sie key_callback, um den Gruppierungsschlüssel anzugeben. Verwenden Sie optional value_callback, um Gruppierungswerte zu bestimmen. Zählen Sie gruppierte Elemente und identifizieren Sie Duplikate. Daher ist die Funktion array_group() sehr nützlich, um doppelte Elemente zu finden und zu verarbeiten.

Ja, in vielen Programmiersprachen können Arrays als Funktionsparameter verwendet werden und die Funktion führt Operationen an den darin gespeicherten Daten aus. Beispielsweise kann die printArray-Funktion in C++ die Elemente in einem Array drucken, während die printArray-Funktion in Python ein Array durchlaufen und seine Elemente drucken kann. Durch diese Funktionen am Array vorgenommene Änderungen werden auch im ursprünglichen Array der aufrufenden Funktion widergespiegelt.

Durch die Funktion uksort() und die benutzerdefinierte Vergleichsfunktion CompareKeyLengths können PHP-Arrays nach der Länge der Array-Schlüsselnamen sortiert werden, während die Schlüsselnamen beibehalten werden. Die Vergleichsfunktion berechnet die Differenz der Schlüssellängen und gibt eine Ganzzahl zurück, und uksort() sortiert das Array nach dieser Ganzzahl. Darüber hinaus wird an einem praktischen Fall gezeigt, wie Datensätze aus der Datenbank nach der Länge des Feldnamens sortiert werden.

Der Schnittpunkt und die Vereinigung von Arrays können mit der PHP-Sammlungsklasse effizient berechnet werden. Die spezifischen Schritte sind wie folgt: Verwenden Sie die Methode intersect(), um den Schnittpunkt zu berechnen: Elemente, die gleichzeitig in zwei Arrays erscheinen. Verwenden Sie die Methode union(), um die Vereinigung zu berechnen: die Elemente, die in einem beliebigen Array erscheinen. Praktischer Fall: Vergleichen Sie den Warenkorbinhalt, um die sich überschneidenden Produkte und einzigartigen Produkte der Benutzer zu verstehen.
