UNPKG

platzomdavid

Version:

Traductor de idioma platzom (Ejercicio David Sierra)

45 lines (37 loc) 1.43 kB
export default function platzomDavid(str) { let translation = str; // Si la palabra termina en 'ar' se eliminan esos dos caracteres if (str.toLowerCase().endsWith('ar')) { translation = str.slice(0, -2); } // Si la palabra inicia con 'z', se le añade 'pe' al final if (str.toLowerCase().startsWith('z')) { translation += 'pe'; } // Si la palabra traducida tiene 10 o más letras se debe partir a la mitad // y unir con un guión. let length = translation.length; if (length >= 10) { const firstHalf = translation.slice(0, Math.round(length / 2)); const secondHalf = translation.slice(Math.round(length / 2)); translation = `${firstHalf}-${secondHalf}`; } // Si la palabra es palindroma, no se evaluan las otras condiciones, // se debe convertir a una cadena con mayúsculas y minúsculas intercaladas. const reverse = (str) => str.split('').reverse().join(''); function minMay(str) { const length = str.length; let translation = ''; let capitalize = true; for (let i = 0; i < length; i++) { const char = str.charAt(i); translation += capitalize ? char.toUpperCase() : char.toLowerCase(); capitalize = !capitalize; } return translation; } if (str == reverse(str)) { return minMay(str); } return translation; }