platzomdavid
Version:
Traductor de idioma platzom (Ejercicio David Sierra)
45 lines (37 loc) • 1.43 kB
JavaScript
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;
}