logo hsb.horse
← Voltar para o índice do blog

Blog

Implementação em TypeScript para ordenar arquivos de mídia por resolução

Uma implementação TypeScript enxuta para ordenar vídeos ou imagens por resolução (largura × altura). Útil para variantes de mídia do Twitter.

Publicado:

Este é o código que escrevi quando precisei ordenar algo como vídeos do Twitter pela resolução.

Ordenar por resolução (largura × altura) em ordem decrescente

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
});
}

Pontos principais

  • toSorted: retorna um novo array sem alterar o original
  • Cálculo da resolução: calcula a resolução com width × height
  • Ordenação decrescente: coloca primeiro os arquivos com maior resolução

Exemplo de uso

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) vem primeiro

Resumo

Combinar cálculo de resolução com ordenação facilita priorizar arquivos de mídia com mais qualidade.

Isso é útil ao escolher a melhor opção entre várias variantes de vídeo ou imagem, como nas mídias do Twitter.