Tengo esta función aquí que devuelve una función. El trabajo que hace es que recibe dos o más argumentos y los guarda en un objeto. Si el número de argumentos es igual a uno, buscamos todas las palabras en la cadena que coincidan con las claves almacenadas en ese objeto y las reemplazamos con sus valores. He logrado hacerlo, pero quiero lograr esto de una sola vez. En este momento, las claves se reemplazan con valores uno por uno porque estoy usando un bucle for para iterar. ¿Hay una mejor manera de hacerlo para que podamos reemplazar todas las llaves de una sola vez?
function censor() { let newObj = {}; return function(...args) { if (args.length > 1) { newObj[args[0]] = args[1]; return newObj; } else { for (let key in newObj) { console.log(args[0] = args[0].replace(args[0].match(key), newObj[key])); }; } } } const changeScene = censor(); console.log(changeScene('dogs', 'cats')); console.log(changeScene('quick', 'slow')); changeScene('The quick, brown fox jumps over the lazy dogs.');