Diesen Code habe ich geschrieben, um etwa Twitter-Videomedien nach Auflösung zu sortieren.
Nach Auflösung (Breite × Höhe) absteigend sortieren
interface MediaFile { url: string; height: number; width: number}
function sortMediaByQuality(files: Array<MediaFile>): Array<MediaFile> { return files.toSorted((a, b) => { const resolutionA = a.width * a.height; const resolutionB = b.width * b.height; return resolutionB - resolutionA });}Wichtige Punkte
toSorted: gibt ein neues Array zurück, ohne das Original zu verändern- Auflösungsberechnung: Die Auflösung wird mit
width × heightberechnet - Absteigende Sortierung: größere Auflösungen werden zuerst einsortiert
Beispiel
const videos: MediaFile[] = [ { url: "video1.mp4", width: 1280, height: 720 }, // 921,600 { url: "video2.mp4", width: 1920, height: 1080 }, // 2,073,600 { url: "video3.mp4", width: 640, height: 480 }, // 307,200];
const sorted = sortMediaByQuality(videos);// video2.mp4 (1920x1080) steht zuerstZusammenfassung
Durch die Kombination aus Auflösungsberechnung und Sortierung lassen sich Mediendateien mit höherer Qualität bevorzugen.
Das ist nützlich, wenn aus mehreren Video- oder Bildvarianten die beste ausgewählt werden soll, etwa bei Twitter-Medien.
hsb.horse