@gregorlopez/platzom
Version:
Traductor de idiomas platzom
46 lines (43 loc) • 1.9 kB
JavaScript
//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