Tengo esta tarea JS simple que no puedo resolver, no tan simple para mí después de todo.
Cree una función 'convertidor', que convierta letras de esta manera:
T -> C C -> T A -> D X -> YLa función acepta cadenas con letras. Todas las letras no convertibles deben eliminarse de la cadena.
Ejemplo:
- converter('TTCCAAXX') -> 'CCTTDDYY' - converter('TTGG') -> 'CC'Intenté algo como esto -
function Converter(str) { let upperStr = str.toUpperCase() let newStr = upperStr.replaceAll("T", "C").replaceAll("C", "T") console.log(newStr) } Converter("TTCCAAXX")Pero esto reemplaza todos los caracteres y los sobrescribe y no obtengo los resultados correctos.
Debe usar un bucle for secuencial que sea más eficiente (solo requiere una iteración) y resuelva el problema de sobrescritura.
Para una mayor flexibilidad, podemos almacenar los pares de caracteres en un objeto.
const convertKeyValue = { 'T': 'C', 'C': 'T', 'A': 'D', 'X': 'Y' } function Converter(str) { let upperStr = str.toUpperCase() var newStr = '' for(let i = 0; i < upperStr.length; i++){ const current = upperStr.charAt(i); newStr += convertKeyValue[current] ? convertKeyValue[current] : ''; } return newStr; } console.log(Converter('TTCCAAXX')); console.log(Converter('TTGG'));Considere agregar un booleano/contador para representar el estado además de nuevas asignaciones. De esa manera, no obtendrá conversiones recurrentes o cíclicas.