Javascript – Wie man ein Array von Objekten nach Properties sortiert, die undefined sein können

Sortieren von Arrays nach einem bestimmten Property mit der sort-Funktion ist ganz einfach. Aber was, wenn nicht alle Objekte im Array dieses Property haben? Es folgt ein Snippet.

In diesem Beispiel wollen wir folgendes Array aufsteigend nach dem Property sortOrder sortieren.

const myArray = [{
	id: 0,
	name: "Object 1",
	sortOrder: 1
},{
	id: 1,
	name: "Object 2"
},{
	id: 2,
	name: "Object 3",
	sortOrder: 0
}];

Nicht alle Objekte haben das Property. Fehlt sortOrder, sollen sie hinten dran sortiert werden.

myArray.sort((a, b) => {
	const noA = typeof a.sortOrder === 'undefined'
	const noB = typeof b.sortOrder === 'undefined'
	if (noA && !noB) {
		return 1;
	}
	if (!noA && noB) {
		return -1;
	}
	if (noA && noB) {
		return 0;
	}
	return (a.sortOrder ?? 0) > (b.sortOrder ?? 0) ? 1 : -1;
});

Nach der Sortierung sieht das Array so aus:

[{
	id: 2,
	name: "Object 3",
	sortOrder: 0
},{
	id: 0,
	name: "Object 1",
	sortOrder: 1
},{
	id: 1,
	name: "Object 2"
}]

Ich hoffe wie immer, diese erstbeste Lösung war hilfreich.

Ähnliche Beiträge

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert