Solución
solution.tsTypeScript
function ordenarPalabrasPorLongitud(words: string[]): string[] {
// Tu implementación aquí
if( words.length === 0) return [];
// Compara las longitudes de las palabras para el ordenamiento general
// return words.toSorted( (word1: string, word2: string) => {
// mejor?? con sort() ya que no usamos la copia para nada
// VER esta lección de Fernando, sobre todo si usas React:
// https://coding-challenges.dev/learn/typescript/inmutabilidad
// apretando CONTROL y haciendo clic con el ratón sigues el enlace ;D
return words.sort( (word1: string, word2: string) => {
const word1Length = word1.length;
const word2Length = word2.length;
// PERO si son de igual tamaño... las ordena alfabeticamente
// localeCompare() devuelve un número que indica si la palabra aparece antes,
// después o es la misma que la palabra dada en el orden de clasificación.
if( word1Length === word2Length ) {
return word1.localeCompare(word2);
}
return word1Length - word2Length;
});
}
// No modificar: necesario para evaluar el resultado.
export { ordenarPalabrasPorLongitud };
2respuestas