UNPKG

@gregorlopez/platzom

Version:
46 lines (43 loc) 1.9 kB
//Inventar un idioma manipulando string export default function platzom(str) { let translation = str; //Si la palabra termina en 'ar' se le quitan esos dos caracteres if (str.toLowerCase().endsWith('ar')) { translation = str.slice(0, -2); } //Si la palabra empieza con 'z' se le a-ade 'pe' al final if (str.toLowerCase().startsWith('z')) { translation += 'pe'; } //Si la palabra traducida tiene 10 o mas letras, // Se debe partir a la mitad y unir con un guion en medio const length = translation.length; if (length >= 10) { const firstHalf = translation.slice(0, Math.round(length / 2)); const seconHalf = translation.slice(Math.round(length / 2)); //Si no tiene segundo valor .slice significa que su valor sera el final del string translation = `${firstHalf}-${seconHalf}`; } // //Si la palabra original es un palindromo, // //Ninguna regla anterior cuenta y se devuelve // //La misma palabra intercalando mayusculas y minusculas 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; //invertimos un boolaeno } return translation } if (str == reverse(str)) { return minMay(str); } return translation // Solo se ejecuta un return por funcion } // console.log(platzom('Programar')); //Program // console.log(platzom('Zorro')); //Zorrope // console.log(platzom('Zarpar')); //Zarppe // console.log(platzom('abecedario')); //abece-dario // console.log(platzom('sometemos')); //SoMeTeMoS