Voici le code que j’ai écrit pour trier des médias, par exemple des vidéos Twitter, selon leur résolution.
Trier par résolution (largeur × hauteur) en ordre décroissant
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 });}Points clés
toSorted: renvoie un nouveau tableau sans modifier l’original- Calcul de résolution : on calcule la résolution avec
width × height - Tri décroissant : les résolutions les plus élevées passent en premier
Exemple d’utilisation
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) arrive en premierRésumé
En combinant calcul de résolution et tri, on peut privilégier facilement les médias de meilleure qualité.
C’est utile pour choisir le meilleur candidat parmi plusieurs variantes vidéo ou image, par exemple pour des médias Twitter.
hsb.horse