para fines de autodesarrollo, quiero crear una función con dos parámetros: una cadena y una matriz. Debería devolver una cadena sin las letras dadas en la matriz.
function filterLetters(str, lettersToRemove) { } const str = filterLetters('Achievement unlocked', ['a', 'e']);¿Alguien podría darme algún consejo sobre cómo lograr esto?
Puede usar expresiones regulares con replaceAll para eliminar todos los caracteres de la cadena.
Si también desea considerar mayúsculas, use 'gi'; de lo contrario, no necesita expresiones regulares también.
str.replaceAll(char, '')
const removeChar = (str, c) => str.replaceAll(new RegExp(`[${c}]`, "gi"), ""); const run = () => { const str = "Achievement unlocked"; const chars = ["a", "e"]; let result = str; chars.forEach((char) => { result = removeChar(result, char); }); return result; }; console.log(run());Para reemplazar cada letra, elimínela (es decir, reemplácela con ''). Cuando haya terminado, devuelva la cadena actualizada:
function filterLetters(str, lettersToRemove) { lettersToRemove.forEach(function(letter){ str = str.replaceAll(letter, ''); }) return str }Consulte también Cómo reemplazar todas las apariciones de una cadena en JavaScript .
Una manera fácil de hacer esto sería simplemente recorrer cada valor en la matriz y llamar al método de reemplazo de cadena en str con cada carácter de índice. El siguiente código hace esto.
function filterLetters(str, lettersToRemove){ for (const letter of lettersToRemove){ str = str.replaceAll(letter,""); } return str; }