Solución
JL@juanluisabreu_4c541ef6
·29/3/2026TypeScriptsolution.tsTypeScript
type Criterio = {
clave: string;
orden: "asc" | "desc";
};
function ordenarPorMultiplesCriterios(
items: Record<string, string | number>[],
criterios: Criterio[]
): Record<string, string | number>[] {
let arreglo = [...items];
for(let i = 0; i < arreglo.length - 1; i++)
{
for(let j = 0; j < arreglo.length -1 - i; j++)
{
let intercambiar = false;
for(let c = 0; c < criterios.length; c++)
{
let clave = criterios[c].clave;
let orden = criterios[c].orden;
let valorActual = arreglo[j][clave];
let valorSiguiente = arreglo[j+1][clave];
if (valorActual == valorSiguiente) {
continue;
}
if (orden == 'asc')
{
intercambiar = valorActual > valorSiguiente;
} else {
intercambiar = valorActual < valorSiguiente;
}
break;
}
if (intercambiar)
{
const valor = arreglo[j];
arreglo[j]=arreglo[j+1];
arreglo[j+1]= valor;
}
}
}
return arreglo;
}
// No modificar: necesario para evaluar el resultado.
export { ordenarPorMultiplesCriterios };0respuestas