UNPKG

@aleja-0515/platzom

Version:
50 lines (45 loc) 1.94 kB
export default function platzom(str) { let traslation = str //Si la palabra termina en "ar", se le quitan esos dos caracteres //endsWith sirve para leer los ultimos caracteres de una palabra //toLowerCase sirve para convertir la minuscula a mayuscula //toUpperCase sirve para convertir la mayuscula a minuscula if(str.toLowerCase().endsWith('ar')){ //slice permite quitar caracteres de un string, en este caso empieza en 0 y quita los ultimos dos 'ar' traslation = str.slice(0, -2) } //Si la palabra inicia con Z, se le pone "pe" al final if(str.toLowerCase().startsWith('z')){ traslation += "pe" } //Si la plabra traducida tiene 10 o mas letras, //se debe partir a la mitad y unir con un guion. const length = traslation.length if(length >= 10){ //length es la longitud de la palabra const firstHalf = traslation.slice(0, Math.round(length/2)) const secondHalf = traslation.slice(Math.round(length/2)) traslation = `${firstHalf}-${secondHalf}` } //Si la palabra original es un palindromo //ninguna regla anterior cuenta y se devuelve //la misma palabra intercalando mayusculas y minusculas //split divide un palabra en caracteres ej: "ale".split('') //reverse invierte los caracteres divididos //join junta los caracteres invertidos y los vuelve una palabra const reverse = (str) => str.split('').reverse().join('') function minMay(str) { const length = str.length //longitud de la palabra let translation = '' let capitalize = true //Si es true se vuelve mayuscula sino minuscula for (let i =0; i < length; i++){//recorre la longitud de la palabra const char = str.charAt(i) translation += capitalize ? char.toUpperCase() : char.toLowerCase() capitalize =! capitalize } return translation } if(str == reverse(str)){ return minMay(str) } return traslation }