Tuve una pregunta que pude resolver para encriptar usando expresiones regulares y me gusta la solución, solo me preguntaba si hay alguna manera de limpiarla un poco. para el cifrado, se supone que debo reemplazar las vocales con estos valores e invertir la cadena agregando aca al final. Solo me preguntaba si puedo reducir la cantidad. Reemplazar líneas. Gracias de antemano.
function encrypt(string) { let input=string.replace(/a/g, '0') .replace(/e/g, '1') .replace(/i/g, '2') .replace(/o/g, '2') .replace(/u/g, '3') return input.split("").reverse().join("")+"aca" }Puede usar un solo reemplazo con una función de devolución de llamada, y en la función asignar los valores a los números.
function encrypt(string) { const obj = {'a': 0, 'e': 1, 'i': 2, 'o': 2, 'u': 3}; return string .replace(/[aeiou]/g, m => obj[m]) .split("") .reverse() .join("")+"aca"; } console.log(encrypt('this is an example, our example'));Reemplazo uno a uno de caracteres conocidos, no se requiere expresión regular.
const encrypt = (str) => { const map = { a: '0', e: '1', i: '2', o: '2', u: '3' }; return str.split('').map(ch => map[ch] || ch).reverse().join('') + 'aca'; } console.log(encrypt('hello mario'));