Tengo una cadena que se ve así:
mylist = `<div>some stuff</div>A lot of code in between<span>more stuff</span>`; Quiero reemplazar some stuff con things y more stuff con many things , así que hago esto:
mylist = mylist.replace(`some stuff`, 'things'); mylist = mylist.replace(`more stuff`, 'many things');Funciona, pero estoy seguro de que debe haber un enfoque mucho mejor. ¿Que debería ser?
Puede encadenar las llamadas de replace :
mylist = mylist.replace(`some stuff`, 'things').replace(`more stuff`, 'many things'); Si desea almacenar los pares en un objeto para la escalabilidad, puede recorrer las entradas del objeto (con Object.entries ) y reemplazar todas las apariciones de cada clave con su valor:
const obj = { "some stuff": "things", "more stuff": "many things" } var str = "<div>some stuff</div>A lot of code in between<span>more stuff</span>" Object.entries(obj).forEach((k,v) => str = str.replace(k,v)) console.log(str)Primero puede crear un objeto de changes que contenga key-value de replace-replacement y luego iterar sobre la key-value y reemplazar la key con el value
Esto es mejor porque si tiene varios reemplazos, funcionará siempre si solo agrega más replacer - replacement en el objeto mismo.
No tiene que agregar una declaración de replace adicional, solo agregue key-value en los changes y estará listo para comenzar.
let mylist = `<div>some stuff</div>A lot of code in between<span>more stuff</span>`; const changes = { "some stuff": "things", "more stuff": "many things", }; mylist = Object.entries(changes).reduce((str, [k, v]) => str.replace(k, v), mylist); console.log(mylist)